2017年3月15日水曜日

docker のデータボリュームで別コンテナの領域をマウントする方法

概要

前回 docker のデータボリュームの使い方を紹介しました
今回は別の使い方として別コンテナの領域をコンテナのデータボリュームとして使う方法を紹介します

環境

  • Mac OS X 10.12.3
  • Docker on Mac 17.03.0-ce, build 60ccb22

使い方

  • docker run --name c1 -p 8080:80 -v /share nginx

で「/share」をデータボリュームとして作成します
次に別のコンテナを作成します
このときに初めに起動したコンテナを --volumes-from オプションを付与して起動します

  • docker run --name c2 -p 8081:80 --volumes-from c1 nginx

こうすることで c1 コンテナでマウントした /share 領域が c2 領域でもマウントされています

動作確認

  • docker exec -it c2 /bin/bash

で、c2 コンテナに入って touch /share/hoge.txt します
その後で

  • docker exec -it c1 /bin/bash

をして /share 配下を確認すると hoge.txt が存在することが確認できると思います

root@32896c0881c4:/# ls /share/
hoge.txt

最後に

docker のデータボリュームで別コンテナのマウント領域を使用する方法を紹介しました
この機能はボリュームコンテナと呼ばれる機能でデータを管理する専用のコンテナを作ることでデータの管理を一元化できるメリットがあります

ある一つのコンテナだけデータを永続化する機能を持っており、他のコンテナはそのコンテナを参照するだけになります
すべてのコンテナがデータを永続化する領域をマウントする必要がなくなるので管理が容易になります

参考サイト

0 件のコメント:

コメントを投稿