在实践中开始一个容器我做:
docker run a8asd8f9asdf0
如果是这样的话,怎么办:
docker start
do?
手册上写着
启动一个或多个停止的容器
在实践中开始一个容器我做:
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[…]