如果它还没有存在,你如何运行Docker容器,如果它存在则启动它?

时间:2014-10-24 00:22:43

标签: docker

例如,如果我有这样的运行命令:

docker run --name yo -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp ubuntu sh tmp.sh 

如果我再次运行它,则会发出此错误:

  

来自守护程序的错误响应:冲突,名称yo已经分配   到c23849234e。您必须删除(或重命名)该容器   能够再次将yo分配给容器。

它适用于docker start:

docker start -ia yo

所以我只想做其中一个。

1 个答案:

答案 0 :(得分:20)

简单回答,使用shell ||操作。因此,如果run失败,则会start代替:

docker run --name yo -v $PWD:/usr/src/myapp -w /usr/src/myapp ubuntu sh tmp.sh || docker start -ia yo