【问题标题】:docker container not able to write on host machinedocker容器无法在主机上写入
【发布时间】:2016-08-06 19:06:00
【问题描述】:

如果我运行以下代码,我可以将 csv 文件转换为我需要的格式。

import csv
import json

csvfile = open('/tmp/head.csv', 'r')
jsonfile = open('/tmp/file.json', 'w')

fieldnames = ("user","messageid","destination","col1", "col2", "code1","code2", "mydate", "status")

reader = csv.DictReader( csvfile, fieldnames)

for row in reader:
    jsonfile.write(json.dumps(row))

当我在命令提示符下运行代码时,它可以工作。

python covert.py

但是如果我创建 docker 容器,ubuntu 拒绝写入磁盘。

alias python34='docker run -i   -v "$(pwd)":/tmp/  --rm shantanuo/pyrun:3.4 python "$@"'

python34 /tmp/convert.py

我收到分段错误错误。我尝试使用

禁用 ubuntu 防火墙
sudo ufw disable

我尝试删除 apparmour。但是我仍然无法通过python容器写入主机的/tmp/文件夹。

这是 ubuntu 特有的问题。我可以在 Amazon Linux ec2 实例上使用相同的别名。

【问题讨论】:

    标签: ubuntu docker


    【解决方案1】:

    这是因为我使用的容器 (pyrun) 没有针对处理大文件进行优化。当我使用默认的 python 图像时,它可以工作。

    docker run -it --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:3 python convert.py
    

    【讨论】:

      猜你喜欢
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      相关资源
      最近更新 更多