Windows Server 2016 Hyper-V からの Hyper-V VM への PowerShell Direct (Enter-PSSession と Invoke-Command の -VMName と -VMId)は、-ContainerID でWindows コンテナーにも使えたんだということに今日になってようやく気付く。
Enter-PSSession と Invoke-WebRequest に -ContainerID で CONTAINER ID を指定すれば OK。ただし、docker ps の短い CONTAINER ID ではなく、docker ps -no-trunc の完全なる CONTAINER ID で指定。短い(12桁)ほうのCONTAINER ID だと、“Enter-PSSession: 入力 ContainerID XXXXXXXXXXXX が存在しないか、対応するコンテナーが実行されていません”ねんって言われちゃう。あと、Windows PowerShellは管理者として起動しないと、"対応するコンテナーが実行されていません”と出てくるので、Docker Desktop の場合はご注意。
Nano Server イメージは Windows PowerShell が削除されちまってるから、当然、接続できない。 (EOS の sac2016 は PowerShell 搭載しているんでたぶん使えたはず。).NET Core イメージに PowerShell Core をぶっこめばできるかもしれないけど(その方法は見当たらないのでできないかも)、面倒なのでやってみない(docker attach <コンテナー> or docker exec <コンテナー> ーit cmd.exeすればよかとっと)。
Get-Help Enter-PSSession には -ContainerID が載ってるけど(たぶん Windows Server 2016/Windows 10 ver 1607 の Windows PowerShell 5.1 から)、Invoke-Command のほうには見当たらない。けど使えた。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。