你如何运行一个Docker容器,如果它不存在,或者如果它启动它?
例如,如果我有这样的运行命令:
docker run --name yo -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp ubuntu sh tmp.sh
如果我再次运行它,它吐出这个错误:
来自守护进程的错误响应:冲突,名称已经分配给c23849234e。 您必须删除(或重命名)该容器才能将yo重新分配给容器。
它与docker启动虽然工作:
docker start -ia yo
所以我只想做一个或另一个。
简单的答案,使用shell || 操作。 所以如果run
失败,它会start
而不是:
docker run --name yo -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp ubuntu sh tmp.sh || docker start -ia yo