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