首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过jenkins管道删除带有图像名称的docker容器

通过jenkins管道删除带有图像名称的docker容器
EN

Stack Overflow用户
提问于 2019-02-01 20:07:08
回答 1查看 2.4K关注 0票数 2

每当gitlab通过jenkins管道触发时,我都会重新部署docker容器。所以我不能移除带有镜像名称的docker容器。我遵循了以下命令:

代码语言:javascript
复制
sh 'docker ps -f name=imagename -q | xargs --no-run-if-empty docker container stop

代码语言:javascript
复制
sh 'docker container ls -a -fname=imagename -q | xargs -r docker container rm'

以上命令无法删除镜像名称的容器。

我也尝试过下面的命令。

代码语言:javascript
复制
sh 'docker ps -a | awk '{ print $1,$2 }' | grep imagename | awk '{print $1 }' | xargs -I {} docker rm -f {}'

但是上面的命令只能通过命令模式删除容器。但是它不是通过Jenkins管道工作的。

我需要删除所有带有镜像名称的容器。例如,如果有5个容器和一个镜像名称。然后,通过该镜像名称,我需要删除5个容器。有没有可能通过jenkins管道?

有谁能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-01 21:04:26

在Jenkins管道中,您需要转义$。对于Jenkins和正在运行的命令,您也使用了单引号。您可以使用与Jenkins不同的shell语法,而不是转义命令中的那些语法:

代码语言:javascript
复制
sh """
  docker ps -a \
    | awk '{ print \$1,\$2 }' \
    | grep imagename \
    | awk '{print \$1 }' \
    | xargs -I {} docker rm -f {}
  """
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54479199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档