仅当不存在具有给定名称的Docker容器时,才如何执行Bash命令?

在Jenkins机器上,我只想创建一个具有指定名称的docker容器(如果它不存在)(在shell脚本中)。我以为我可能会运行该命令来创建容器,而忽略存在该容器的失败,但这会导致我的詹金斯工作失败。

因此,我想知道如何检查docker容器是否存在或不使用bash。

回答:

您可以通过grepping a检查是否存在正在运行的容器,<name>然后像下面这样启动它:

[ ! "$(docker ps -a | grep <name>)" ] && docker run -d --name <name> <image>

更好:

利用https://docs.docker.com/engine/reference/commandline/ps/并检查是否存在退出的容器,因此您可以在运行容器之前先将其删除:

if [ ! "$(docker ps -q -f name=<name>)" ]; then

if [ "$(docker ps -aq -f status=exited -f name=<name>)" ]; then

# cleanup

docker rm <name>

fi

# run your container

docker run -d --name <name> my-docker-image

fi

以上是 仅当不存在具有给定名称的Docker容器时,才如何执行Bash命令? 的全部内容, 来源链接: utcz.com/qa/424464.html

回到顶部