首页 > 解决方案 > 如何访问 Docker 容器中的应用程序文件?

问题描述

我正在运行带有 的docker run命令check_call(),但无法弄清楚如何访问应用程序文件。

我目前有类似的东西

check_call(['docker', 'run', <other stuff>, 'python path/to/script/my_script.py'])

在我的本地机器上,该文件列在下面/Users/AlanH/Apps/.../MyApp/scripts/my_script.py

在 docker 容器中执行此脚本的路径是什么?

标签: pythondocker

解决方案


由于 Docker 容器的环境与主机隔离docker run,您需要传递特定选项-v /host/path:/container/path来设置所谓的“绑定挂载”。

然后,您的check_call命令应该相应地工作:

check_call(['docker', 'run', '-v', '/path/to/your_script.py:/usr/src/your_script.py', <other stuff>, 'python', '/usr/src/your_script.py'])

注意 thehost path和 thecontainer path不必相同。

在上面的示例中,绑定挂载是一个文件,但它也可以是一个目录。

有关更多信息,请参阅例如 的文档或docker run绑定安装的专用页面。


推荐阅读