[英]Docker file mount understanding
我正在使用docker,當我嘗試在主機文件上安裝容器文件時,我有一個奇怪的行為。
docker run -v /var/tmp/foo.txt:/var/tmp/foo.txt myapp
上面的命令運行myapp容器,它將foo.txt文件創建到容器中的/ var / tmp目錄中。 因為我需要在myapp死后將此文件保留在主機上,所以我創建了一個安裝點。
我的問題是,不是在主機上創建foo.txt作為文件,而是最終得到一個名為“foo.txt”的空目錄(內部沒有任何內容)。
但是,如果我在主機上創建一個空文本文件foo.txt,如果我再次運行myapp,它會按預期工作。
所以,我的問題是,當我使用帶有docker的文件掛載時,我是否需要在啟動容器之前在主機上創建文件?
我想我錯過了什么。 謝謝你的解釋。
事實上,正如您所發現的,要將主機文件作為數據卷掛載,文件必須存在,否則docker將創建一個目錄並掛載它。
來自: https : //docs.docker.com/engine/tutorials/dockervolumes/
-v
標志還可用於從主機安裝單個文件 - 而不僅僅是目錄。
$ docker run --rm -it -v ~/.bash_history:/root/.bash_history ubuntu /bin/bash
請注意,它永遠不會說主機上不存在該文件。
正如評論中所建議的那樣,如果您希望容器寫入目錄,最好安裝目錄。
問候
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.