Python 3.x 使用带有命令行参数的Docker py从Python3运行Docker容器

Python 3.x 使用带有命令行参数的Docker py从Python3运行Docker容器,python-3.x,docker,dockerpy,Python 3.x,Docker,Dockerpy,我正在尝试使用docker py库从python3脚本启动/运行docker容器。这是密码 c = docker.DockerClient() ctr = c.containers.run('alexwoif/docker-grib2json', command='grib2json --names --data --fp 2 --fs 103 --fv 10.0 --output /usr/local/{}.json /usr/local/{}'.format(grib_file, grib_

我正在尝试使用docker py库从python3脚本启动/运行docker容器。这是密码

c = docker.DockerClient()
ctr = c.containers.run('alexwoif/docker-grib2json',
command='grib2json --names --data --fp 2 --fs 103 --fv 10.0 --output /usr/local/{}.json /usr/local/{}'.format(grib_file, grib_file), detach=True)
python脚本在主机上,而不是在容器中,因此当我运行脚本时,它找不到目标grib_文件。 错误消息是:

b'Cannot find input file: /usr/local/gfs_wind_f000.grib\n'
python脚本位于/var/www/mywebsite/api/data/grib中,这也是*.grib文件所在的位置

命令字符串类似于github项目中给出的示例,只是我使用--output将json写入文件

grib2json --names --data --fp 2 --fs 103 --fv 10.0 gfs.t18z.pgrbf00.2p5deg.grib2
为了澄清,应该读取并处理为json的*.grib文件与python脚本位于同一目录中

我认为断开连接的原因是docker容器在内部查找文件,而不是在主机文件系统上

我该如何连接

非常感谢您的建议。
Bryan可以通过
参数安装docker主机的
/usr/local

c=docker.DockerClient()
ctr=c.containers.run(
“alexwoif/docker-grib2json”,
command='grib2json--names--data--fp 2--fs 103--fv 10.0--output/usr/local/{}.json/usr/local/{}.format(grib_文件,grib_文件),
分离=真,
卷={'/usr/local':{'bind':'/usr/local','mode':'ro'})

这听起来像是在寻找类似于
subprocess.call()
的东西,而不是与Docker相关的东西。如果脚本不在映像中,而输入和输出在主机文件系统中……Docker是如何进入的?我认为必须有一种方法,通过某种类型的映射或卷共享,将Docker容器中处理的文件推送到主机文件系统。