Dockerのコンテナを起動するとき、ID指定にpowershellの配列をそのまま渡せるとは、今更ながら。

Windows10 HOMEのpowershellにて、
名前がtest-1,test-2,test-3という3つのコンテナを作成し、停止した状態から起動させてみた。
コンテナの名前で絞り込んで(filter,-f)、quietオプション(-q)を付けてlsでIDを配列に取り込む。
※dockerコマンドのsyntaxは古いかもしれませんのでご注意・・・

PS >docker container ls -a -f name=test-.*
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS                     PORTS     NAMES
9bbd5b2256b6   nginx:1.17.6-alpine   "nginx -g 'daemon of… "   3 minutes ago   Exited (0) 2 minutes ago             test-3
34410af55b73   nginx:1.17.6-alpine   "nginx -g 'daemon of… "   3 minutes ago   Exited (0) 2 minutes ago             test-2
d892fccc011b   nginx:1.17.6-alpine   "nginx -g 'daemon of… "   3 minutes ago   Exited (0) 3 minutes ago             test-1
PS >$c = docker container ls -a --quiet -f name=test-.*
PS >$c
9bbd5b2256b6
34410af55b73
d892fccc011b
PS >docker container start $c
9bbd5b2256b6
34410af55b73
d892fccc011b
PS >docker container ls
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                  NAMES
9bbd5b2256b6   nginx:1.17.6-alpine   "nginx -g 'daemon of… "   5 minutes ago   Up 9 seconds   0.0.0.0:8093->80/tcp   test-3
34410af55b73   nginx:1.17.6-alpine   "nginx -g 'daemon of… "   5 minutes ago   Up 8 seconds   0.0.0.0:8092->80/tcp   test-2
d892fccc011b   nginx:1.17.6-alpine   "nginx -g 'daemon of… "   5 minutes ago   Up 8 seconds   0.0.0.0:8091->80/tcp   test-1
PS >docker container stop $c
9bbd5b2256b6
34410af55b73
d892fccc011b
PS >stop-transcript

コンテナを作成したときのスクリプト

$port = 8090
foreach ( $i in 1..3 ){
    $port ++
    $name = 'test-' + $i
    $cmd = "docker run -d -it --name $name -p ${port}:80 nginx:1.17.6-alpine"
    invoke-expression $cmd
}

enter-pssesssionで他のPCに入りコンテナを起動して、exec -it でコンテナの中に入ろうとしたが、PSRemotingではコンテナの中には入れなかった。
コンテナの中に入れないのでは、面倒だが外からコマンドを発行するしかない。

docker container start ubun2
$c = docker container ls -q
$d = get-date -format 'yyyyMMdd'
$f = $d + '.log'
docker container exec -d $c bash -c "/home/guest/app2/server.py > /tmp/${f} 2>&1"

dettachの'-d'をつけ忘れたらpowershellの端末を奪われてしまった。
未だに見まねで使っているレベル、要注意。