我使用docker container stop xxx
。如果不存在docker容器xxx,将导致jenkins失败。
我想知道是否有一个参数来停止容器而不失败,这意味着当容器存在时,将其删除,否则什么也不做。
答案 0 :(得分:2)
您可以使用以下命令:
docker container ps -all --filter "id=XXXXXX" --format {{.ID}} |xargs --no-run-if-empty docker container stop
说明:
docker container ps -all
:此命令将列出所有容器。
docker container ps -all --filter "id=XXXXXX"
:此命令将列出容器ID为XXXXXX的容器。
docker container ps -all --filter "id=XXXXXX" --format {{.ID}}
:此命令将仅打印出容器ID。
我们将使用此容器ID将其传递给xargs
命令以运行Docker容器停止。
xargs --no-run-if-empty docker container stop
:仅当"|"
(管道)之前的命令非空时,此命令才会停止docker容器。
答案 1 :(得分:1)
使用此:
docker stop CONTAINER_NAME 2> /dev/null || true
将始终为您提供退出代码0
答案 2 :(得分:0)
您可以按照以下简单的方法进行管理:
docker stop XXXX || true && docker rm XXXX || true
无论哪种情况,它都将返回true,并将成功移出。