在docker中,create命令与run命令都可以创建一个新的容器,区别就是create命令创建一个新的容器但是不启动它,而run命令创建一个新的容器会运行一个命令。
本教程操作环境:linux7.3系统、docker-1.13.1版、Dell G3电脑
docker中create与run的区别是什么
以下是这些命令的用途:
docker create命令从 Docker 映像创建一个全新的容器。但是,它不会立即运行它。
docker start命令将启动任何已停止的容器。如果使用 docker create命令创建容器,则可以使用此命令启动它。
docker run 命令是创建和启动的组合,因为它创建了一个新容器并立即启动它。实际上,如果docker run命令在您的系统上找不到上述映像,它甚至可以从 Docker Hub 中提取映像。
让我们用例子来看看它,这样你就能更清楚地知道事情。
让我们通过示例来查看它
如果要遵循示例,请确保已安装 Docker。
假设您使用 docker pull ubuntu 命令从 Docker Hub 下载 Ubuntu 映像。
您可以查看系统上所有可用的 Docker 映像。在这个例子中,我只有ubuntu(为了避免混淆):
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 775349758637 5 weeks ago 64.2MB
现在,使用 docker create 命令创建一个名为 container-1 的新docker容器:
# docker create --name container-1 ubuntu 6a81a998658e9e0d3b612ee65b07d76a45d79812d860baf3f1cbc60fe997ebec
可以看到它已创建一个新容器。如果尝试查看所有正在运行的容器,则不会看到 container-1,因为尽管它已创建,但从未启动过。
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
如果检查所有容器,无论它们是否正在运行,都会看到 container-1 具有"已创建"状态:
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6a81a998658e ubuntu "/bin/bash" 18 seconds ago Created container-1
现在,让我们使用docker run 命令来创建并运行一个名为 container-2 的容器:
# docker run -it -d --name container-2 ubuntu bash 6391c1a0cac6c9f5fc6f5cfb05d75a22c208e63223c3b231035a40a4b134c521
您可以看到容器-2 正在运行,因为它的状态为"已启动":
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6391c1a0cac6 ubuntu "bash" About a minute ago Up About a minute container-2
让我们停止这个正在运行的容器:
# docker stop container-2 container-2 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6391c1a0cac6 ubuntu "bash" 2 minutes ago Exited (0) 28 seconds ago container-2 6a81a998658e ubuntu "/bin/bash" 3 minutes ago Created container-1
现在我们有一个停止的容器,您可以使用docker start 命令再次启动它:
# docker start container-2 container-2 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6391c1a0cac6 ubuntu "bash" 2 minutes ago Up 2 seconds container-2
但是,使用 docker create 命令创建的 container-1 会发生什么情况呢?您可以使用 docker start 命令启动此容器,然后使用docker exec运行特定的东西。
推荐学习:《docker视频教程》
以上是docker中create与run的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!