データボリュームを複数のコンテナにマウントしたとき、データボリュームに書き込みができなくなる
以下のように同じデータボリュームlogを複数のコンテナにマウントしたら最初にマウントした方が書き込みできなくなった。
- name: Webコンテナの起動
docker_container:
user: nginx
name: web
image: web
volumes:
- log:/var/log/nginx
- name: アプリケーションコンテナの起動
docker_container:
user: rails
name: app
image: app
volumes:
- log:/var/www/one-progress/log
これはSELinuxによるもので、SELinuxが起動している状態でデータボリュームを複数コンテナ間で共有する場合はボリュームマウント時にzオプションを追加する。このオプションはこのデータボリュームは共有するものであることを示す。逆にプライベートなものであると示したい場合はZオプションを使う。
参考:http://docs.docker.jp/engine/userguide/dockervolumes.html
- name: Webコンテナの起動
docker_container:
略
volumes:
- log:/var/log/nginx:z
- name: アプリケーションコンテナの起動
docker_container:
略
volumes:
- log:/var/www/one-progress/log:z