2017-03-17 57 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

我認爲你可以掛載特定的文件,而不是所有的目錄,並在主機中給它指定名稱:'/path/in/container/log.txt:/ path/in/host/container1_log.txt' – ItayB

+1

@ItayB要小心這是因爲如果你的文件被旋轉或者inode因爲任何原因而改變,docker中的文件將不再指向你期望的文件... – user3012759

2

是,其可能的。在你做這件事之前,你只需要對「爲什麼你想這麼做?」做一點研究。