让我澄清一下我想做什么。
我的本地机器中有一个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 run -it -p 8888:8888 my_docker
答案 0 :(得分:4)
您可以使用-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 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的更多详情。
答案 1 :(得分:0)
你必须使用docker exec -it image_name python /filename
注意:要使用'docker exec',您必须使用docker run
答案 2 :(得分:0)
您可以使用docker的python SDK library。首先,您需要将脚本移动到那里,我建议您在创建容器时或如Mathieu Lescaudron所提到的那样启动脚本时进行操作:
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")
...