docker命令解析的文章参考
build 和 commit
build
适合从头创建一个清晰干净的镜像。
build
是从Dockfile
产生新的镜像,对于使用者能清晰的知道镜像中包含了哪些内容。commit
适合将已有的容器打包提供给其他使用者。
commit
是从已经存在的容器产生镜像,这个容器曾经执行的操作是黑盒,使用者不知道。
参考文章
另一篇参考文章
create 和 run
在docker中,create
命令与run
命令都可以创建一个新的容器,区别就是create
命令创建一个新的容器但是不启动它,而run
命令创建一个新的容器会运行一个命令。
docker create
命令从 Docker 映像创建一个全新的容器。但是,它不会立即运行它。docker start
命令将启动任何已停止的容器。如果使用docker create
命令创建容器,则可以使用此命令启动它。docker run
命令是创建和启动的组合,因为它创建了一个新容器并立即启动它。实际上,如果docker run
命令在您的系统上找不到上述映像,它甚至可以从 Docker Hub 中提取映像。
参考文章
attach 和 exec
docker attach
命令用于附加到正在运行的容器的标准输入、输出和错误流。- 使用
docker attach 容器id
进入正在执行容器,不会启动新的终端, 退出容器时,会导致容器的停止。 - 当多个窗口同时
attach
到同一个容器的时候,所有窗口都会同步显示;当某个窗口因命令阻塞时,其他窗口也无法执行操作。
- 使用
docker exec
命令用于在正在运行的容器中执行特定的命令。docker exec 容器id 命令
进入容器并开启一个新的终端。 退出容器终端时,不会导致容器的停止。
参考文章
参考文章2
export 和 save
docker save
保存的是镜像(image),docker export
保存的是容器(container);docker load
用来载入镜像包,docker import
用来载入容器包,但两者都会恢复为镜像;docker load
不能对载入的镜像重命名,而docker import
可以为镜像指定新名称。
参考文章
import 和 load
docker load
命令导入镜像库存储文件到本地镜像库docker import
命令导入一个容器快照到本地镜像库
两者的区别在于容器快照将会丢弃所有的历史记录和元数据信息,而镜像存储文件将保存完整记录,体积也会更大。此外从容器快照文件导入时,也可以重新指定标签等元数据。
参考文章
images 和 ps
docker images
查看下载到本地的所有镜像docker ps -a
命令可以显示所有的容器
参考文章
命令参考文章