簡體   English   中英

Docker文件掛載理解

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM