【问题标题】:Shell script to cleanup specified docker containers using grep使用 grep 清理指定 docker 容器的 Shell 脚本
【发布时间】:2015-09-26 14:51:02
【问题描述】:

我想编写一个由我的开发构建服务器执行的脚本,该脚本将在构建和运行新容器之前删除任何“类似”的 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 shell grep docker sh


    【解决方案1】:

    你可以在 shell 中使用这个脚本:

    name="${1?one argument needed}"
    
    ids=$(docker ps -a | awk -v name="$name" '$NF ~ name{print $1}')
    [[ -n $ids ]] && docker rm -f $ids
    

    【讨论】:

    • 有没有办法使名称必须完全匹配?
    • 是的,当然:docker rm -f $(docker ps -a | awk -v name="$name" '$NF == name{print $1}')
    • 谢谢你。我遇到的唯一真正的问题是,如果它找不到匹配项,它就会失败,所以我需要找到一种方法让它静默失败。谢谢
    • 感谢所有帮助!这正是我所需要的!
    猜你喜欢
    • 2015-10-13
    • 2022-10-20
    • 2020-07-21
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多