2017-12-27 221 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 /名称

相关问题