読者です 読者をやめる 読者になる 読者になる

NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE で Acropolis Container Services (ACS) 。Part.5

ACS ABS Docker

ACS の Nutanix Volume Plug-In による Docker Data Volume を 同じ Docker Host VM にある 2つのコンテナに接続して、データが永続化される様子を見てみようと思います。

前回はこちら。

今回は、Docker Machine を実行するクライアントから、直接 Docker Host に SSH して Docker コマンドを実行しています。

今回の構成

  • Docker Machine Client: vm01
  • Docker Host VM:  docker-vm-01
  • Docker Container #1: ct01
  • Docker Container #2: ct02
  • Docker Data Volume: ntnx-vg01 (Voluem Driver = nutanix)

Docker Data Volume + Nutanix Volume Plug-In によるデータ永続化

まず Client から、Docker Host VM ( docker-vm-01 ) に SSH ログインします。

[gowatana@vm01 ~]$ docker-machine ssh docker-vm-01
Last login: Sat Oct 15 09:46:26 2016 from 10.1.1.6
[root@docker-vm-01 ~]#

1つ目の Docker コンテナ (ct01)を起動します。「--volume-driver nutanix」を指定して、Nutanix Volume-Plug-In による ABS Voluem Group (VG) の Data Voluem「ntnx-vg01」をコンテナの /u01 ディレクトリにマウントします。

ct01 コンテナは「d6926748b8d4 ~」という ID で起動しました。

[root@docker-vm-01 ~]# docker run -it --volume-driver nutanix --name ct01 -v ntnx-vg01:/u01 oraclelinux
[root@d6926748b8d4 /]# df -h /u01
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb        9.8G   37M  9.2G   1% /u01
[root@d6926748b8d4 /]#

コンテナの中にいます。Docker Data Volume がマウントされている /u01 に、何かデータを書き込んでみます。

[root@d6926748b8d4 /]# echo "yo-solo-" > /u01/test.f
[root@d6926748b8d4 /]# cat /u01/test.f
yo-solo-
[root@d6926748b8d4 /]#

コンテナを抜けます。

Docker の Data Volume として、DRIVER が「nutanix」の Volume が作成されています。(Nutanix Acropolis Block Service (ABS) の VG が使用されています。

[root@d6926748b8d4 /]# exit
exit
[root@docker-vm-01 ~]# docker volume ls
DRIVER              VOLUME NAME
nutanix             ntnx-vg01

コンテナ内のデータはコンテナを削除すると一緒に消えてしまいますが、Data Volume は削除されません。ct01 コンテナを削除ても Data Volume 「ntnx-vg01」は残るので、データは永続化されます。

[root@docker-vm-01 ~]# docker rm ct01
ct01
[root@docker-vm-01 ~]# docker volume ls
DRIVER              VOLUME NAME
nutanix             ntnx-vg01

新しくコンテナを作成するときに Data Volume を接続すれば、Data Volume にあるデータを再利用できます。コンテナ「ct02」を起動しつつ、「cat /u01/test.f」で Data Volume 上のデータを読み取ってみます。

[root@docker-vm-01 ~]# docker run --rm --volume-driver nutanix --name ct02 -v ntnx-vg01:/u01 oraclelinux cat /u01/test.f
yo-solo-
[root@docker-vm-01 ~]#

続くかもしれない。