我想编写一个由我的开发构建服务器执行的脚本,该脚本将在构建和运行新容器之前删除任何“类似”的docker容器.
下面是我需要的bash脚本的伪代码
var name = $1 var number_of_results = # of containers returned from $(docker ps -a | grep "$name") if(number_of_result > 0) docker rm -f $(docker ps -a | grep "$name")
以下脚本应该执行您想要的操作:
原文链接:/bash/385736.html#!/bin/bash name=$1 matchingStarted=$(docker ps --filter="name=$name" -q | xargs) [[ -n $matchingStarted ]] && docker stop $matchingStarted matching=$(docker ps -a --filter="name=$name" -q | xargs) [[ -n $matching ]] && docker rm $matching
基本上,它会检查是否有一个带有提供名称的正在运行的容器,并在找到它时停止它.然后,它删除任何具有提供名称的容器.
注意:您可能希望添加一些参数验证,就像使用不带参数一样,此脚本将停止所有正在运行的容器并删除所有已停止的容器.我没有在这里添加它以保持简单易读.