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 ~]#
続くかもしれない。