加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 停止并删除docker容器,如果它正在运行

发布时间:2020-12-15 19:03:10 所属栏目:安全 来源:网络整理
导读:我希望实际停止并删除一个docker容器,如果它正在运行。这是一个构建脚本。 以下面的例子为例。如何在bash脚本中的NAMES列下停止并删除docker容器“rabbitmq”。 docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES9909a5e2856f rabbitmq-imag
我希望实际停止并删除一个docker容器,如果它正在运行。这是一个构建脚本。

以下面的例子为例。如何在bash脚本中的NAMES列下停止并删除docker容器“rabbitmq”。

docker ps

CONTAINER ID        IMAGE             COMMAND                  CREATED             STATUS              PORTS                   NAMES
9909a5e2856f        rabbitmq-image   "/docker-entrypoint.s"   11 minutes ago      Up 11 minutes       0.0.0.0:5672->5672/tcp,rabbitmq
8990dd1fe503        redis-image      "/entrypoint.sh redis"   6 weeks ago         Up 4 days           0.0.0.0:32770->6379/tcp redis
etc

以下命令将删除容器并执行即将发生的操作

docker stop rabbitmq && docker rm -f rabbitmq

然而它将它梳理成我想知道的脚本?我认为它看起来像这样。

#!/bin/bash

if [ /*docker ps check some value */ ]; then
   docker stop rabbitmq && docker rm -f rabbitmq
fi
正如您可能已经注意到的那样,docker stop和docker rm exit以及状态代码表示如果容器不存在或未运行则失败。这会导致您的构建失败。

如果您可以处理构建日志中的错误消息,您可以执行此小技巧来防止shell命令失败:

docker stop rabbitmq || true && docker rm rabbitmq || true

在其中一个docker命令失败的情况下,调用true,它始终以状态代码表示成功退出。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读