在实践中开始我做的容器:
docker run a8asd8f9asdf0
如果是这样,那会是什么:
docker start
办?
在手册中说
启动一个或多个已停止的容器
答案 0 :(得分:215)
这是一个非常重要的问题,答案非常简单,但基本:
答案 1 :(得分:86)
run
运行图片 start
启动容器。 docker run
doc确实提到了:
docker run
命令首先在指定的图像上创建一个可写容器图层,然后使用指定的命令启动它。也就是说,docker run等同于API
/containers/create
,然后是/containers/(id)/start
。
你do not run an existing container, you docker exec to it (since docker 1.3) 你可以restart an exited container。
答案 2 :(得分:8)
run
命令从映像创建一个容器,然后在该容器上启动根进程。使用run --rm
标志运行它可以为您省去事后删除无用的死容器的麻烦,并使您完全忽略docker start
和docker remove
的存在。
run
命令执行一些不同的操作:
docker run --name dname image_name bash -c "whoami"
docker ps
bash -c "whoami"
。如果在没有命令执行容器的情况下运行docker run --name dname image_name
,则会立即进入停止状态。 docker remove
。 如何在容器自动停止后删除容器? 在--rm
命令中添加run
标志:
docker run --rm --name dname image_name bash -c "whoami"
如何在单个容器中执行多个命令? 通过防止该根进程死亡。这可以通过在--detached
标志开始处运行一些无用的命令,然后使用“ execute”运行实际命令来完成:
docker run --rm -d --name dname image_name tail -f /dev/null
docker exec dname bash -c "whoami"
docker exec dname bash -c "echo 'Nnice'"
那为什么我们需要docker stop
? 要停止我们在上一代码段中使用无穷命令tail -f /dev/null
启动的这个挥之不去的容器。
答案 3 :(得分:0)
daniele3004的答案已经很好。
对于像我这样不时混淆run
和start
的人来说,这只是一个又快又脏的公式:
docker run [...]
= docker pull [...]
+ docker start [...]
答案 4 :(得分:0)