2017-12-27 223 views
2

我有一個運行良好的碼頭集裝箱。它會在目錄/Project/userfiles.txt中生成一些文件。我需要這些文件來進行一些測試。但是,當這個容器停止時,一切都被刪除。所以我需要將這個文件從容器複製到主機。如何將文件從碼頭集裝箱共享到主機

我有一個正在生成該文件的容器中運行的python應用程序。我想要一些命令或任何方式,通過它我可以在容器停止時將userfiles.txt發送到主機。

要做到這一點,我可以使用docker cp命令,我試過了,但它給了我一個錯誤docker not found作爲碼頭沒有安裝。

如何將文件從容器共享到主機?

+0

你在哪裏運行'泊塢窗cp'? – vivekyad4v

+0

@ vivekyad4v對不起,我忘了提及,我在容器中運行docker cp,因爲我的代碼正在運行,並且在代碼中提到了此命令。 –

+0

您可以在主機上運行它。在容器中運行它的任何具體原因? – vivekyad4v

回答

1

使用volume(綁定安裝一個),以確保寫入/項目中的文件仍然存在。

volumes

這意味着你需要泊塢窗與-v /host/path:/Project選項來運行你的形象。
見「Use bind mounts」的最簡單的方法(這是共享一臺主機的文件夾與您的容器)

+0

可以解釋更多。如果我使用'-v/host/path:/ Project'運行docker,那麼在容器停止後,我會在'/ host/path'中得到'userfile.txt'。 –

+0

的確,您將可以在那裏訪問它。 – VonC

1

主機&不是容器內使用上docker cp。在你的情況下,命令可能看起來如下 -

$ docker cp mycontainer:/Project/userfiles.txt userfiles.txt

命令完成後你會得到主機的文件中,從那裏你跑了docker cp命令的目錄。

PS - 我只是檢查,即使您的容器處於停止狀態,它也能正常工作。例如 -

$ docker cp 9059e95cbe33:/etc/rc.local rc.local

9059e95cbe33 - 已退出集裝箱ID /名稱

相關問題