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

前端之家收集整理的这篇文章主要介绍了bash – 停止并删除docker容器,如果它正在运行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望实际停止并删除一个docker容器,如果它正在运行。这是一个构建脚本。

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

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

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

  1. docker stop rabbitmq && docker rm -f rabbitmq

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

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

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

  1. docker stop rabbitmq || true && docker rm rabbitmq || true

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

猜你在找的Bash相关文章