Dockerの利点はポータビリティにある。すなわち、作成されたコンテナをコピーすることで異なる環境でも稼動させることができる。しかし、データを永続化したい場合などホストのディレクトリをコンテナにマウントしてしまうと、ポータビリティは損なわれてしまう。
これを緩和する手段の1つとして、データを格納するコンテナを作成することがある。すなわち、動かないホストをマウントする代わりに、コンテナのボリュームにデータを保存することにより、データ自体にもポータビリティを持たせるわけ。
サンプル
参考サイトより。
ボリュームを定義する最低限のDockerfileを作成。
1 2 3 |
FROM busybox VOLUME /opt CMD /bin/sh |
my_dataというユニークな名前を付けてデータ格納コンテナを作成。
1 2 |
$ sudo docker build -t me/storage . $ sudo docker run -i -t --name my_data me/storage |
別のコンテナから –volumes-from を指定して、データ格納コンテナ内のボリュームにアクセスする。
1 |
$ sudo docker run -t -i --volumes-from my_data ubuntu /bin/bash |
参考サイト
Docker でデータのポータビリティをあげ永続化しよう – Qiita
http://qiita.com/mopemope/items/b05ff7f603a5ad74bf55
Managing data in containers – Docker Documentation
http://docs.docker.com/userguide/dockervolumes/