# 为了方便在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}
}