“Docker 無くても、Windows Server Containers は動く”
別の言い方をするなら、
"Windows Server Container は Docker エンジン上で動いているにあらず”
Windows Server 2016 Technical Preview 3 の注目機能は、Docker 対応と Windows Server Container の提供です。ちょっと混乱するかもしれませんが、Windows Server 版 Docker が無くても、Windows Server Container は動くという話。
思わず Windows Server Container が Docker 上で動くと説明してしまいそうですが、それは間違い。私自身、どっかでそう説明していたらごめんなさい。訂正します。
Windows Server で動く Docker デーモン (Docker.exe) は、Docker クライアントに対する管理インターフェイス(Docker API) を提供しているだけのようです。 Windows Server Container を Docker で管理できる(それも、Linux の Docker と同じように、Linux からでも) ということ。
関連:
Windows Server 2016 TP3 > Windows 版 Docker でリモート接続 (TLS) を有効化する
試しに、Docker Daemon を止めてみると...
Docker クライアントによる操作はできなくなりますが、Windows PowerShell の Containers モジュールのコマンドレットによる管理には影響しません。
Docker Daemon を止めたままでも、New-Container や Start-Container によるコンテナーの作成と実行は可能。
Windows Server コンテナーを動かしているのは、Hyper-V Host Compute Service (C:\Windows\system32\vmcompute.exe) というサービス。Hyper-V ハイパーバイザー上でコンテナーが動作しているわけではありませんが、Hyper-V のテクノロジをいろいろと応用しているみたい。
Windows Server Container は Hyper-V 仮想マシンではないけど、仮想スイッチは Hyper-V と同じもの (Internal Only タイプ) を利用してますね。
Linux ベースの Docker は LXC (Linux Containers)という Linux のコンテナ技術(Docker 0.9 以降は LXC ではなく、Linux カーネルの libcontainer らしい)を利用して Linux コンテナーを動かすようですが、LXC に相当するのが Windows Server 2016 TP3 に追加されたサーバーの機能 Containers であり、Windows Server Containers の管理機能を Docker に提供しているということみたい。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。