在实践中开始一个容器我做:

docker run a8asd8f9asdf0

如果是这样的话,怎么办:

docker start

do?

手册上写着

启动一个或多个停止的容器


当前回答

这是一个非常重要的问题,答案很简单,但却是基本的:

运行:创建镜像的新容器,并执行该容器。您可以创建同一映像的N个克隆。命令如下: docker运行IMAGE_ID,非docker运行CONTAINER_ID

启动:启动先前停止的容器。例如,如果你已经用命令docker stop CONTAINER_ID停止了一个数据库,你可以用命令docker start CONTAINER_ID重新启动同一个容器,数据和设置将是相同的。

其他回答

Run运行映像 Start启动容器。

docker run doc中提到:

docker run命令首先在指定映像上创建一个可写容器层,然后使用指定的命令启动它。 也就是说,docker run相当于API /containers/create then /containers/(id)/start。

你不运行一个现有的容器,而是对它执行docker exec (docker 1.3开始)。 您可以重新启动退出的容器。

举例说明:

假设您的计算机中有一个游戏(iso)映像。

当您运行(将映像挂载为虚拟驱动器)时,将创建一个虚拟驱动器,其中包含虚拟驱动器中的所有游戏内容,并自动启动游戏安装文件。运行你的docker镜像-创建一个容器,然后启动它。

但是当你停止它(类似于docker stop),虚拟驱动器仍然存在,但停止所有进程。[因为容器一直存在直到它被删除]

当你启动时(类似于docker start),游戏文件从虚拟驱动器开始执行。[启动现有容器]

在本例中,游戏映像是Docker映像,虚拟驱动器是容器。

将命令命名为“new”而不是“run”会更明智。

Run创建一个现有(或可下载)映像的容器实例并启动它。

这是一个非常重要的问题,答案很简单,但却是基本的:

运行:创建镜像的新容器,并执行该容器。您可以创建同一映像的N个克隆。命令如下: docker运行IMAGE_ID,非docker运行CONTAINER_ID

启动:启动先前停止的容器。例如,如果你已经用命令docker stop CONTAINER_ID停止了一个数据库,你可以用命令docker start CONTAINER_ID重新启动同一个容器,数据和设置将是相同的。

Daniele3004的答案已经很不错了。

对于像我这样时不时把跑和开始混在一起的人来说,这只是一个快速而肮脏的公式:

Docker run[…= docker pull[…]+ docker start[…]