docker中run、start和create命令的区别

 更新时间:2023年11月26日 08:34:53   作者:allway2  
对于 Docker 初学者来说,docker start、docker run 和 docker create 等术语可能会令人困惑,本文就来介绍一下docker中run、start和create命令的区别,感兴趣的可以了解一下

对于 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命令。我建议您了解容器生命周期,以便进一步了解此主题。

到此这篇关于docker中run、start和create命令的区别的文章就介绍到这了,更多相关docker run、start和create内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker如何对已经启动的容器添加目录映射(挂载目录)

    docker如何对已经启动的容器添加目录映射(挂载目录)

    当我们创建容器之后,不可避免会遇到修改配置文件的操作,下面这篇文章主要给大家介绍了关于docker如何对已经启动的容器添加目录映射(挂载目录)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • CentOS/RedHat 6.5 离线安装Docker

    CentOS/RedHat 6.5 离线安装Docker

    这篇文章主要介绍了CentOS/RedHat 6.5 离线安装Docker的相关资料,需要的朋友可以参考下
    2017-01-01
  • Docker部署Minio的实现方法

    Docker部署Minio的实现方法

    使用Docker搭建MinIO分布式对象存储系统可以让您快速搭建和配置一个高性能、可扩展的存储系统,本文主要介绍了Docker部署Minio的实现方法,感兴趣的可以了解一下
    2024-01-01
  • 将Docker容器打包并在其他服务器上运行的全过程

    将Docker容器打包并在其他服务器上运行的全过程

    Docker容器使得应用程序的部署和管理变得更加简单和高效,有时,我们可能需要将一个运行中的Docker容器打包,并在其他服务器上运行,本文将详细介绍如何实现这一过程,需要的朋友可以参考下
    2024-05-05
  • Flask应用封装成Docker服务的完整操作指南

    Flask应用封装成Docker服务的完整操作指南

    本文详细介绍了如何使用Docker将Flask应用容器化,包括实现原理、详细操作步骤、进阶配置、常见问题及解决方案和生产环境注意事项,需要的朋友可以参考下
    2025-04-04
  • 在docker中执行linux shell命令的操作

    在docker中执行linux shell命令的操作

    这篇文章主要介绍了在docker中执行linux shell命令的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • docker中run命令30个常用参数详解和示例

    docker中run命令30个常用参数详解和示例

    这篇文章主要给大家介绍了关于docker中run命令30个常用参数的相关资料,docker run命令是Docker中最常用的命令之一,用于创建并启动一个新的容器实例,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • docker容器创建的全流程分享

    docker容器创建的全流程分享

    这篇文章主要介绍了docker容器创建的全流程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • docker安装目录迁移的两种常用方法

    docker安装目录迁移的两种常用方法

    docker目录的迁移其实非常简单,今天小编给大家分享两种方法帮助大家解决docker安装目录迁移问题,感兴趣的朋友跟随小编一起看看吧
    2023-05-05
  • 一文详解如何检查本地是否存在Docker镜像

    一文详解如何检查本地是否存在Docker镜像

    在运维工作中,查看 Docker 镜像是管理容器化应用的基础操作之一,这篇文章主要介绍了如何检查本地是否存在Docker镜像的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-10-10

最新评论