扩展 docker 管理命令

停止多个容器: docker stop <container1> <container2> <container3> 

停止所有容器: docker stop $(docker ps -qa)  

我想用  docker stop :all   来生成   docker stop $(docker ps -qa)   命令。就是特殊参数翻译成标准的命令。

可能感觉也没啥用,但你会了这种思想,以后说不定能解决大问题呢。要不是 docker 命令提示干没了,我就觉得完美。当然,高手不需要命令提示,哈哈。

 

 把代码追加到 /etc/bash.bashrc 文件中

复制代码
function docker(){

    alias docker=`which $FUNCNAME`
    local manage="$1"
    local args="$@"
    shift 1

    case "$manage" in
        'start'|'stop')
            args=${args//':all'/'$(docker ps -qa)'}
        ;;
        'rm')
            args=${args//':all'/'-f $(docker ps -qa)'}
        ;;
        'image')
            args=${args//':all'/'$(docker image ls -qa)'}
            args=${args//':clear'/'$(docker image ls -f "dangling=true" -q)'}
        ;;
        'cp')
            [[ "$args" =~ ':into' ]] && { set -- ${args#*:into};    args=${args//:into*/"$2 $1:$2"};    }
            [[ "$args" =~ ':out' ]] && { set -- ${args#*:outof};  args=${args//:outof*/"$1:$2 $2"};   }

        ;;
        'exec')
            [ $# == 1 ] && args=${args//$@/"-it $@ bash"}
        ;;
        'inspect')
            args=${args//':pid'/'--format "{{.Name}}: {{.State.Pid}}"'}
            args=${args//':ip'/'--format "{{.Name}}: {{.NetworkSettings.IPAddress}}"'}
            args=${args//':all'/'$(docker ps -q)'}
        ;;
        'run')
            args=${args//':restart'/"--restart=always"}
            args=${args//':once'/'--rm -it'}
        ;;
    esac
    
    echo docker $args
    eval "docker $args"

    unalias $FUNCNAME
}
复制代码

 

posted @   心随所遇  阅读(284)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示