概要
前回 VMware Integrated Container (VIC) に必要な virtual container host (VCH) を vCenter が動作する仮想化環境にデプロイしました
今回はこの VCH 上に docker コンテナを立てるところまでやってみました
環境
仮想環境
- ESXi 5.5.0
- CPU: Xeon E5-2690 (Sandy Bridge 世代)
- Memory: 400GB
- VMware vCenter Server 5.5.0
- VMware Integrated Contaier v0.8.0
クライアント側
- Ubuntu 16.04
- docker 1.11.2
事前作業
docker コマンドを実行できるクライアント用のマシンを作成します
当然ですが、ネットワーク的に VCH にアクセスできる環境に作成してください
今回は Ubuntu 16.04 を構築し docker をインストールしました
参考: http://hawksnowlog.blogspot.jp/2016/12/install-docker-on-ubuntu1604lts.html
一点ポイントなのですが、VCH 0.8.0 は docker API 互換のエンドポイントを持っているのですが、バージョンが「API version 1.23」までしか対応していません
執筆時点での docker の最新バージョンが 1.12.6 となっており、これをインストールしてしまうとクライアント側の API version が 1.24 になってしまい動作しません
Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.23)
なので、クライアント側の docker は 1.11 台の最新版をインストールします
Ubuntu でインストールする場合簡単にバージョンを落とせるので apt-get install する際に以下のコマンドを実行することで docker 1.11 をインストールすることができます
apt-get install docker-engine=1.11.2-0~xenial
VCH に接続できるか確認する
無事 docker コマンドがインストールできたら docker コマンドを使って VCH にアクセスできるか確認してみます
ちなみに Ubuntu に docker をインストールした際に docker デーモンが起動してしまいますが今回は VCH 上にコンテナを立てるので停止しておいて問題ないです
VCH の IP アドレスは 192.168.10.10 とします
以下のコマンドで docker の情報が返却されれば OK です
docker -H 192.168.10.10:2376 --tls info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: v0.8.0-7315-c8ac999
Storage Driver: vSphere Integrated Containers v0.8.0-7315-c8ac999 Backend Engine
VolumeStores:
vSphere Integrated Containers v0.8.0-7315-c8ac999 Backend Engine: RUNNING
VCH mhz limit: 199374 Mhz
VCH memory limit: 1.819 TiB
VMware Product: VMware vCenter Server
VMware OS: win32-x64
VMware OS version: 5.5.0
Execution Driver: vSphere Integrated Containers v0.8.0-7315-c8ac999 Backend Engine
Plugins:
Volume:
Network: bridge
Operating System: win32-x64
OSType: win32-x64
Architecture: x86_64
CPUs: 199374
Total Memory: 1.819 TiB
Name: virtual-container-host
ID: vSphere Integrated Containers
Docker Root Dir:
Debug mode (client): false
Debug mode (server): false
Registry: registry-1.docker.io
イメージをダウンロードする
では docker pull でイメージをダウンロードしてみます
docker -H 192.168.10.10:2376 --tls pull nginx
でイメージのダウンロードが始まります
VCH が docker hub からダウンロードしているので、 VCH がインターネットに接続できる必要があります
問題なくダウンロードが完了すれば OK です
docker -H 192.168.10.10:2376 --tls images
でダウンロードしたイメージが確認できると思います
コンテナを起動する
ではコンテナを起動してみましょう
普通に run コマンドを実行すれば OK です
docker -H 192.168.10.10:2376 --tls run -d -p 10080:80 nginx
やや run 時に詰まる印象でしたがすぐに起動すると思います
ps でコンテナの状態を確認しましょう
docker -H 192.168.10.10:2376 --tls ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9878655a5ce nginx "nginx -g daemon off;" 32 minutes ago Up 32 minutes 192.168.10.10:10080->80/tcp cocky_mirzakhani
コンテナが起動してるのが確認できたら vCenter 側でもコンテナが作成されているか確認してみましょう
一番てっとり早いのは virtual-container-host がある vApp 配下を見ることです
コンテナ用の VM は「コンテナ名-コンテナID」という名前で起動していると思います
stop すると VM も停止し ps からも消えると思います
コンテナを削除したい場合には rm で OK です
docker -H 192.168.10.10:2376 --tls rm big_khorana
最後に
VCH 上に docker コンテナを立ち上げてみました
既存の docker コマンドの向き先をローカルではなく VCH 上に向けるだけで使えるようになるので簡単に移行はできると思います
また触っていて他にも気づいたことがあるのでメモしておきます
- docker exec が使えない
Error response from daemon: vSphere Integrated Containers does not implement container.ContainerExecCreate
となりエラーとなる
コンテナは VM なのでログインしてしまえば良いといのもあるがそれはご法度だと思う
- docker-compose に対応しているのか
- docker-swam 的なことができるのか
あたりでしょうか
VCH (Photon OS) 上の動きも気になるのでやはりログインできたほうが開発的には楽かもしれません
あと VCH の管理用のポート 2378 で run したらどうなるか試してみました
docker -H 192.168.10.10:2376 --tls run -d -p 2378:443 nginx
どうやらこの場合はエラーとなるようです、nginx の画面も表示されませんでした
コンテナは普通に起動していたようですが、もう少し VCH のログとかを見てみたらどこかにエラーログとか出ているかもしれません
0 件のコメント:
コメントを投稿