2017-03-17 12 views
5

マウントされたボリュームにアプリケーションログを共有する必要があります。 ログを保持するために、すべてのドッカーコンテナに同じボリュームをマウントします。 それは可能ですか?各コンテナで実行されているアプリケーションに影響しますか?複数のドッカーコンテナに同じボリュームをマウントできますか?

docker run -d --name C1 -v /home/ubuntu/logs:/usr/local/apache/htdocs/ httpd 
docker run -d --name C2 -v /home/ubuntu/logs:/etc/app/logs my-docker-image:latest 
docker run -d --name C3 -v /home/ubuntu/logs:/usr/logs TestImage:latest 

答えて

7

はい、あなたは多くのドッキングウィンドウのコンテナへのボリュームと同じ場所を追加することができます。

また、あなたが実際に任意のアプリケーションを実行していない一つの容器であなたのログディレクトリをマウントする--volumes-fromを使用して、あなたの他に、このコンテナからのボリュームを使用することができますどこでもパスを繰り返す必要はありません。

値を読み取るDocker volumes

1

あなたのログは、容器の中に書かれている場合、私は(いくつかのコンテナに同じディレクトリをマウントするが、読み取り目的のために、書きませんよ。私は、彼らはそれが動作するはず別のファイルに記述している場合だと思います..

+0

ログをマウントしたかったのです。私は多くのドッカーコンテナを実行していますが、実行中のすべてのサービスに対してログファイルをlog.txtとして保管しています。どのようにすべてのログファイルが同じ名前を使用しているので、どのサービスのどのログファイルを区別することができますか? – Ritcha12

+2

私はあなたが特定のファイルをマウントすることができ、すべてのディレクトリをマウントすることができないと思うと、ホストにdiffの名前を与えることができると思います: '/path/in/container/log.txt:/ path/in/host/container1_log.txt' – ItayB

+1

@ItayBあなたのファイルが回転したり、何らかの理由でiノードが変化したりすると、ドッカーのファイルはもはやあなたが期待するファイルを指していないからです。 – user3012759

2

はい、可能です。それをする前に、「なぜあなたはそれをしたいのですか?」という少しの研究をしてください。

関連する問題