docker中run、start和create命令的区别
对于 Docker 初学者来说,Docker start、docker run 和 docker create 等术语可能会令人困惑。本文通过示例解释了其中的区别。目录Docker 运行、Docker 启动和 Docker 创建之间的区别如果您不熟悉 Docker 并通过学习各种教程来学习它,则可能会遇到诸如启动 docker 容器、运行 docker 容器或创建 docker 容器之类的术语。这
对于 Docker 初学者来说,docker start、docker run 和 docker create 等术语可能会令人困惑。本文通过示例解释了其中的区别。
如果您不熟悉 Docker 并通过学习各种教程来学习它,则可能会遇到诸如启动 docker 容器、运行 docker 容器或创建 docker 容器之类的术语。
这些术语足以使 Docker 初学者感到困惑,因为所有三个 docker 命令看起来都很相似。
事实上,特别难以区分 docker run 和 docker start。
运行容器与启动容器是一样的吗?并不是。
让我向你解释一下。
docker run、docker start和 docker create之间的区别
以下是这些命令的用途:
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 run、docker start和 docker create命令。我建议您了解容器生命周期,以便进一步了解此主题。
更多推荐
所有评论(0)