镜像操作
$ docker search <name> # 在docker hub中查找相关镜像
$ docker pull <name:tag> # 拉取镜像
$ docker inspect <image id> # 检查容器信息
查看镜像
$ docker image ls # 查看本地已有镜像
$ docker images # 同 docker image ls
$ docker image rm <image id> # 删除镜像
$ docker ps # 查看正在运行的所有镜像
$ docker ps -a # 包括那些已经stop了的镜像
如果某个镜像有正在运行的实例,那么就不能用 docker image rm
删除,建议先停止并删除该镜像的所有实例后再删除该镜像。
当我们构建了一个新镜像,并且给这个新镜像打上一个已经存在的标签,这时候Docker会移除旧镜像上的标签。
执行docker image ls --filter dangling=true
查看此类镜像。
执行docker image prune
会移除全部的这种镜像。
docker image history
接镜像名:标签或者id,能输出构建镜像的过程中都执行的哪些指令。
运行容器
$ docker run -it -d <image_name:version> bash # 使用bash交互并将容器挂在后台,可以用 --name 指定容器名称,这样就可以不再使用container id了
$ docker exec -it <container id> bash # 进入容器
$ docker stop <container id> # 停止容器,容器的相关数据不会丢失
$ docker start <container id> # 启动容器
$ docker rm < container id> # 删除容器,建议先停止容器再执行删除操作
-it
参数使我们能将当前终端连接到容器的shell终端上去。--restart always
会使容器自动重启。当docker daemon被重启时,容器也会重启。--restart unless-stopped
限定容器在手动停止的时候不会重启。
构建镜像
$ docker build -t image_name:tag .
注意不要忘记最后的 .
Docker使用Dockerfile
为指令构建新的镜像。
构建镜像是分层的,会使用以前的缓存。
.dockerignore
.dockerignore
文件用于排除构建镜像时不需要的文件或目录。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。