社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

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

MohanKanth • 5 年前 • 1685 次点击  

只要gitlab通过jenkins管道触发,我就会重新部署docker容器。所以我无法删除具有图像名的docker容器。我执行了以下命令:

sh 'docker ps -f name=imagename -q | xargs --no-run-if-empty docker container stop

sh 'docker container ls -a -fname=imagename -q | xargs -r docker container rm'

以上命令无法删除具有图像名的容器。

我也试过用下面的命令。

sh 'docker ps -a | awk '{ print $1,$2 }' | grep imagename | awk '{print $1 }' | xargs -I {} docker rm -f {}'

但上述命令只能通过命令模式删除容器。 但这不是通过詹金斯管道

我需要删除所有带有图像名称的容器。 例如,如果有5个容器具有一个图像名称。然后通过这个图像名我需要删除5个容器。有可能通过詹金斯管道吗?

有人能帮我吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50784
 
1685 次点击  
文章 [ 1 ]  |  最新文章 5 年前
BMitch
Reply   •   1 楼
BMitch    6 年前

在詹金斯的管道里,你需要逃离 $ . 您还在Jenkins和运行的命令中使用单引号。您可以使用与Jenkins不同的shell语法,而不是转义命令中的命令:

sh """
  docker ps -a \
    | awk '{ print \$1,\$2 }' \
    | grep imagename \
    | awk '{print \$1 }' \
    | xargs -I {} docker rm -f {}
  """