如果您是 Docker 新手并通过各种教程学习它,您可能会遇到诸如启动 docker 容器、运行 docker 容器或创建 docker 容器之类的术语。
这些术语足以让 docker 初学者感到困惑,因为所有三个 docker 命令看起来都很相似。
实际上,要区分 docker run 和 docker start 是特别困难的。
运行容器与启动容器不一样吗? 并不真地。
让我给你解释一下。
Docker run、Docker start 和 Docker create 的区别
以下是这些命令的作用:
Docker 创建命令 从 docker 镜像创建一个全新的容器。 但是,它不会立即运行它。
Docker 启动命令 将启动任何停止的容器。 如果您使用 docker create 命令创建容器,则可以使用此命令启动它。
码头工人运行命令 是 create 和 start 的组合,因为它创建一个新容器并立即启动它。 事实上,如果 docker run 命令在您的系统上找不到上述镜像,它甚至可以从 Docker Hub 拉取镜像。
让我们用例子来看看,这样你就更清楚了。
让我们用例子来看看
如果要按照示例进行操作,请确保已安装 Docker。
假设您使用 docker pull ubuntu 命令从 Docker Hub 下载 Ubuntu 映像。
您可以查看系统上所有可用的 docker 映像。 我只有ubuntu example (为避免混淆):
[email protected]:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 775349758637 5 weeks ago 64.2MB
现在,创建一个名为 container-1 的新 docker 容器,其中 docker 创建命令:
[email protected]:~$ docker create --name container-1 ubuntu
2d9a8c190e6c9b3cbbc032a87762bfbc92f1dc0dd30abbe9bdb3ed7e74a6480f
你可以看到它已经创建了一个新的容器。 如果您尝试查看所有正在运行的容器,您将看不到 container-1,因为尽管它已创建,但它从未启动过。
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
如果您检查所有容器,无论它们是否正在运行,您都会看到 container-1 处于 Created 状态:
[email protected]:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d9a8c190e6c ubuntu "/bin/bash" 18 seconds ago Created container-1
现在让我们使用 码头工人运行命令 创建并运行一个名为 container-2 的容器:
[email protected]:~$ docker run -it -d --name container-2 ubuntu bash
13dc0f4226dc8d9d86e41d927c5616654d8263da2cc8c667aaa5b4dbd7f7e9b3
您可以看到 container-2 正在运行,其状态为 Up:
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" About a minute ago Up About a minute container-2
让我们停止这个正在运行的容器:
[email protected]:~$ docker stop container-2
container-2
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[email protected]:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" 2 minutes ago Exited (0) 28 seconds ago container-2
2d9a8c190e6c ubuntu "/bin/bash" 3 minutes ago Created container-1
现在我们有一个停止的容器,您可以使用 码头工人启动命令:
[email protected]:~$ docker start container-2
container-2
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" 2 minutes ago Up 2 seconds container-2
但是使用 docker create 命令创建的 container-1 会发生什么? 您可以使用 docker start 命令启动此容器,然后使用 码头工人执行 用它运行一些特定的东西。
我希望这篇文章能让你更好地了解 docker run、docker start 和 docker create 命令。 我会建议学习容器生命周期以进一步理解这个主题。
如果您有任何问题或建议,请随时在下面发表评论。