端くれプログラマの備忘録 Docker [Docker] データボリュームを使ってコンテナ間でデータを共有する

[Docker] データボリュームを使ってコンテナ間でデータを共有する

データボリュームを使うと、複数コンテナでデータを共有することができる。

データボリュームは、永続または共有データに関して、幾つかの役立つ機能を提供する。

  • ボリュームはコンテナ作成時に初期化される。コンテナのベースイメージが指定されたマウントポイントのデータを含む場合、そのデータは新しいボリュームへコピーされる。
  • データボリュームはコンテナ間で共有及び再利用されることができる。
  • データボリュームへの変更は直ちに行われる。
  • イメージを更新する時、データボリュームへの変更は含まれない。
  • コンテナ自身が削除される場合でも、データボリュームは永続化される。

サンプル

ボリュームを作成するには、実行時に-vコマンドでボリューム名を指定する。

$ sudo docker run -v /data centos /bin/bash -c "echo data123 > /data/file"

別のコンテナからボリュームを参照するには、実行時に–volume-fromでコンテナのIDを指定する。

$ sudo docker run --volumes-from 35427377c622 centos /bin/bash -c "cat /data/file"
test123

参考サイト

Managing data in containers – Docker Documentation
http://docs.docker.com/userguide/dockervolumes/

Dockerで再利用可能なボリュームを定義する – cpw’s diary
http://cpw.hatenadiary.jp/entry/2013/08/17/013119