如何将本地 python 脚本从另一个 python 脚本执行到 docker?
How to execute a local python script into a docker from another python script?
让我澄清一下我想做什么。
我的本地机器上有一个 python 脚本,它执行很多事情,在某些时候它必须调用另一个 python 脚本,该脚本必须在 docker 中执行容器。这样的脚本有一些输入参数,它 returns 有一些结果。
所以我想弄清楚如何做到这一点。
示例:
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
由于 -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_name
在 docker 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 documentation。
你必须使用 docker exec -it image_name python /filename
注意:要使用 'docker exec',您必须 运行 使用 docker run
的容器
您可以使用 docker 的 python SDK library。首先,您需要将脚本移到那里,我建议您在创建容器时或在启动容器时执行此操作,如 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")
...
让我澄清一下我想做什么。
我的本地机器上有一个 python 脚本,它执行很多事情,在某些时候它必须调用另一个 python 脚本,该脚本必须在 docker 中执行容器。这样的脚本有一些输入参数,它 returns 有一些结果。
所以我想弄清楚如何做到这一点。
示例:
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
由于 -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_name
在 docker 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 documentation。
你必须使用 docker exec -it image_name python /filename
注意:要使用 'docker exec',您必须 运行 使用 docker run
您可以使用 docker 的 python SDK library。首先,您需要将脚本移到那里,我建议您在创建容器时或在启动容器时执行此操作,如 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")
...