2016-08-09 80 views
0

是否可以通過在Docker容器內運行命令將文件複製到本地機器。我知道docker cp <containerId>:container/file/path /host/file/path但是,我的理解是,這必須從碼頭集裝箱外運行。有沒有辦法做到這一點或從內部類似?將Docker容器內的文件複製到本地機器

對於某些上下文,我有一個在Docker容器中運行的Python腳本,其內容類似於以下命令docker run -ti -rm --net=host buildServer:5000/myProgram /myProgram.py -h。我想檢索從這個程序生成的文件,以便它們可以被編輯。我可以在分離模式下運行碼頭容器,docker cp所需文件並關閉容器。不過,我希望能夠從用戶那裏抽象出來。

回答

0

碼頭集裝箱按設計沒有任何訪問主機文件系統,除非您通過卷掛載明確提供它。所以,在你的榜樣,你可以這樣做:

docker run -ti -v /tmp/data:/data -rm --net=host buildServer:5000/myProgram /myProgram.py -h 

和容器內,在/data目錄將被映射到/tmp/data您的主機上。然後,您可以將文件複製到/data以在主機上查看它們。

這假定你在Linux上運行Docker。如果您使用的是Windows或OS X,則可能需要執行其他步驟,因爲在這些環境中,Docker實際上是在Linux虛擬機上運行,​​並且卷訪問可能會或可能不會像預期的那樣運行(我不使用這些平臺,因此我無法權威評論)。

欲瞭解更多信息:

相關問題