如何从另一个 python 脚本将本地 python 脚本执行到 docker 中?

新手上路,请多包涵

让我澄清一下我想做什么。

我的本地机器上有一个 python 脚本,它执行很多事情,在某些时候它必须调用另一个必须在 docker 容器中执行的 python 脚本。这样的脚本有一些输入参数并返回一些结果。

所以我想弄清楚该怎么做。

例子:

 def function()
    do stuff
         .
         .
         .
    do more stuff

    ''' call another local script that must be executed into a docker'''

    result = execute_python_script_into_a_docker(python script arguments)

docker 已在终端中启动为:

 docker run -it -p 8888:8888 my_docker

原文由 Abiud Rds 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 414
2 个回答

由于 -v 选项,您可以将文件添加到 docker 容器中。

 docker run -it -v myFile.py:/myFile.py -p 8888:8888 my_docker

并在你的 docker 中执行你的 python: py /myFile.py

或与主持人:

 docker run -it -v myFile.py:/myFile.py -p 8888:8888 my_docker py /myFile.py

即使你的 docker 已经在运行

docker exec -ti docker_name py /myFile.py

docker_namedocker ps 命令后可用。

或者您可以在运行命令中指定名称,例如:

 docker run -it --name docker_name -v myFile.py:/myFile.py -p 8888:8888 my_docker


就像是:

 -v absoluteHostPath:absoluteRemotePath

您也可以用同样的方式指定文件夹:

 -v myFolder:/customPath/myFolder

docker 文档 中的更多详细信息。

原文由 callmemath 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 docker 的 python SDK 库。首先,您需要将脚本移到那里,我建议您在创建容器时或在启动容器时执行此操作,如 Callmemath 所述:

 docker run -it -v myFile.py:/myFile.py -p 8888:8888 my_docker

然后使用库运行脚本:

 ...
client = docker.client.from_env()
container = client.containers.get(CONTAINER_ID)
exit_code, output = container.exec_run("python your_script.py script_args")
...

原文由 Khalid 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题