在 Jenkins 机器上,我想创建一个具有指定名称的 docker 容器,前提是它尚不存在(在 shell 脚本中)。我想我可能会运行命令来创建容器,如果有失败则忽略失败,但这会导致我的 Jenkins 工作失败。
因此,我想知道如何使用 bash 检查 docker 容器是否存在。
最佳答案
您可以通过 grepping 查找 <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
关于regex - 仅当具有给定名称的 Docker 容器不存在时,如何执行 Bash 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38576337/