使用powershell,根据name 查docker容器和镜像的id


# 为了方便在win服务器上管理docker,比如自动build,自动删除容器,镜像等。需要使用脚本获取容器id、镜像id。
# 
# 使用方法:
# 
# 查询名字是mysql的镜像的id
# <脚本名称> image mysql
# 查询运行的容器中,名字是mysql-1的容器的id
# <脚本名称> container mysql-1
# 查询所有容器中,名字是mysql-1的容器的id
# <脚本名称> container mysql-1 all


Function queryContainerIdByName {
    if (![String]::IsNullOrEmpty($all_obj)){
        $all = $all_obj.ToString()
        if ("all".Equals($all)) {
            docker ps -a | where {(-Split $_)[-1].Equals($name)} | %{(-Split $_)[0]}
        }
    } else {
        docker ps | where {(-Split $_)[-1].Equals($name)} | %{(-Split $_)[0]}
    }
}

Function queryImageIdByName {
    docker images | where {(-Split $_)[0].Equals($name)} | %{(-Split $_)[2]}
}

# $args不能在语句块中访问(花括号包围的代码,防冲突)
$index = $args[0].ToString()
$name = $args[1].ToString()
$all_obj = $args[2]

switch($index) {
    "container" {queryContainerIdByName}
    "image" {queryImageIdByName}
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM