端くれプログラマの備忘録 Docker [Docker] データを格納するコンテナを作成する

[Docker] データを格納するコンテナを作成する

Dockerの利点はポータビリティにある。すなわち、作成されたコンテナをコピーすることで異なる環境でも稼動させることができる。しかし、データを永続化したい場合などホストのディレクトリをコンテナにマウントしてしまうと、ポータビリティは損なわれてしまう。

これを緩和する手段の1つとして、データを格納するコンテナを作成することがある。すなわち、動かないホストをマウントする代わりに、コンテナのボリュームにデータを保存することにより、データ自体にもポータビリティを持たせるわけ。

サンプル

参考サイトより。

ボリュームを定義する最低限のDockerfileを作成。

FROM busybox
VOLUME /opt
CMD /bin/sh

my_dataというユニークな名前を付けてデータ格納コンテナを作成。

$ sudo docker build -t me/storage .
$ sudo docker run -i -t --name my_data me/storage

別のコンテナから –volumes-from を指定して、データ格納コンテナ内のボリュームにアクセスする。

$ 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/