2015-03-30 55 views
1

我想讓我的容器登錄到主機上的目錄/var/log/app。不幸的是,在容器中進行的更改不被持續存在,例如:碼頭容器通過卷登錄主機

1 - 開始一個容器

sudo docker run -v /var/log/app --entrypoint bash -t -i b18bf31c48d5

2 - 回波一些文件

echo "foo" > /varlog/app/foo.txt

3 - 出口容器

4 - 去檢查/var/log/app對於foo.txt

它不存在。

任何想法爲什麼發生這種情況?

回答

1

的問題是與-v標誌,這似乎使其工作:

sudo docker run -v /var/log/app:/var/log/app:rw --entrypoint bash -t -i b18bf31c48d5

+0

這是不準確的說,這是用'-v'國旗的問題;只需簡單地映射您的碼頭卷。你不能只傳遞一個'-v'標誌的路徑,如果你想在容器外查看這些日誌文件,你還必須將該路徑映射到主機上的一個位置。左側的路徑是容器內的目錄,冒號右側的路徑是主機上的路徑。 – 2016-09-13 21:07:32

+1

我認爲冒號左邊的路徑是主機上的路徑,而冒號右邊的路徑是容器中的路徑。 – Stephane 2017-04-15 17:54:16

+0

@Stephane你說得對,冒號左側的路徑是主機目錄上的路徑。請參閱[參考](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume) – 2017-05-10 07:55:06