You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker中通过指定路径参数挂载目录并传递给Python脚本

如何给Docker中的Python脚本传递自定义路径参数

问题背景

我有一个通过sys.argv接收输入/输出文件夹路径的Python脚本:

  • 执行python script.py时,使用默认的from和to目录
  • 执行python script.py from to时,使用指定的自定义路径

已构建Docker镜像,当前通过docker run -v "$(pwd):/folder" myimage运行时,脚本会触发默认路径逻辑。脚本的参数处理代码如下:

argl = len(sys.argv)
if argl==1:
    dir_from = 'from'
    dir_to   = 'to'
elif argl == 3:
    dir_from  = sys.argv[1]
    dir_to    = sys.argv[2]

解决方案

Docker的run命令支持在镜像名称后追加容器内要执行的命令或参数,直接把自定义路径参数加在命令末尾即可,分两种场景说明:

场景1:镜像CMD指向python script.py

如果你的Dockerfile中定义了CMD ["python", "script.py"],直接在docker run命令末尾添加容器内的路径参数:

docker run -v "$(pwd):/folder" myimage /folder/custom_from /folder/custom_to

注:因为本地当前目录挂载到了容器的/folder,所以容器内的路径要对应挂载目录下的位置,比如/folder/custom_from对应本地的./custom_from。

场景2:镜像ENTRYPOINT指向python script.py

如果Dockerfile用ENTRYPOINT ["python", "script.py"]定义了入口命令,同样在docker run末尾追加参数即可,命令格式和场景1完全一致。

注意事项

  • 确保传递的路径在容器内存在,或属于挂载的目录范围
  • 如果路径包含空格,需要用引号包裹参数:
docker run -v "$(pwd):/folder" myimage "/folder/custom from" "/folder/custom to"

执行上述命令后,容器内脚本的sys.argv长度会变为3,触发脚本中argl == 3的分支,使用你传递的自定义路径。

内容的提问来源于stack exchange,提问作者Talha Anwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 20:45:36