我正在尝试使用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_file。错误消息为:
b'Cannot find input file: /usr/local/gfs_wind_f000.grib\n'python脚本位于/var/www/mywebsite/api/data/grib中,这也是*.grib文件所在的位置。
命令字符串类似于json github项目中给出的示例,只是我使用--output将grib2json写入文件。
grib2json --names --data --fp 2 --fs 103 --fv 10.0 gfs.t18z.pgrbf00.2p5deg.grib2为了澄清起见,应该读取并处理到json的*.grib文件与python脚本位于同一目录中。
我认为断开连接是因为docker容器在内部查找文件,而不是在主机文件系统上。
我如何建立这种联系?
非常感谢您的任何建议。布莱恩
发布于 2018-09-10 18:03:12
可以通过volumes参数挂载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_file, grib_file),
detach=True,
volumes={'/usr/local': {'bind': '/usr/local', 'mode': 'ro'}})https://stackoverflow.com/questions/51681410
复制相似问题