Windows Server 2016 のコンテナー ホストで Windows コンテナーを実行中に Windows Sysinternals の Process Explorer を実行してみると...
これが実に面白い。
Windows Server コンテナー (カーネルをホストと共有するタイプの Windows コンテナー) の場合、コンテナーごとに CExecSvc.exe (Container Execution Agent) プロセスが開始され、その子プロセスとしてコンテナー内のプロセス (以下の例では cmd.exe と、その子プロセス psping64.exe) が見えます。psloggedon でコンテナーのログオン ユーザーの情報を見ると、User Manager\ContainerAdministrator になってます。
コンテナー内のプロセスは、UtilityVM (のクローン?)が提供するカーネル上のプロセスだから、コンテナーホストからは見えない。コンテナー内のプロセスは見えないけど、C:\ProgramData\docker\windowsfilter\xxxx\Files\Windows ... とか、-v 共有内のパスとかのファイル アクセスは見える (ホスト上のフラットなディレクトリ構造だから)。
以上、見たまま(と想像)をお伝えしました。
・・・
なお、この例では、microsoft/nanoserver の Windows Server コンテナーと Hyper-V コンテナーを動かしています。Nano Server も Windows なので、Sysinternals のツールは使えます。ただし、Nano Server は WOW64 (Windows 32-bit on Windows 64-Bit) を搭載していないので、64 ビット ネイティブなツール (上の例では、psping.exe ではなく、psping64.exe) を使う必要がありますし、CUI 環境なのでコマンド ツールを使う必要がありますし、初回実行時に EULA に同意するために -accepteula オプションが必要です。
Sysinternals Suite for Nano Server というものがありますが、これは Nano Server 専用に改良したとかいうものではなく、Nano Server で動く 64 ビット ネイティブなコマンド ツールだけをまとめた、Sysinternals Suite のサブセットです。
Sysinternals Suite for Nano Server (SysinternalsSuite-Nano.zip)
[URL] https://technet.microsoft.com/en-us/sysinternals/bb842062.aspx
Windows コンテナーがどのように実装されたのか、その経緯について、面白い読み物を見つけました。
コンテナー - Windows Server コンテナーで Windows 開発者が Docker を使えるように (MSDN マガジン April 2017)
[URL] https://msdn.microsoft.com/ja-jp/magazine/mt797649.aspx
以上、ご参考まで。
(PR) 新刊のお知らせ『Windows Sysinternals 徹底解説 改訂新版』 第 5 弾 (2017/07/03)
Windows Container Base OS Image 10.0.14393.1066 and Update Docker EE Engine 17.03.x (2017/04/12)
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。