0
python3ドッカーコンテナの内部からftp経由でファイルをダウンロードしようとしています。コンテナは公式のドッカーハブのpythonリポジトリから構築されました。ここでdockerized python3 ftpコマンドでRETRがConnectionResetErrorをスローする
は、私が実行しようとするPythonコードの最小限の例です。
import ftplib
ftp = ftplib.FTP("ftp.geneontology.org")
ftp.login()
ftp.sendcmd("MDTM /go/ontology/go-basic.obo")
ftp.retrbinary("RETR /go/ontology/go-basic.obo", callback=open("go-basic.obo", "wb").write)
このコードのMDTMとRETRコマンドは、ホストに適しています。
しかし、python3ドッカーコンテナでは、MDTMコマンドだけが動作します。
>>> ftp.retrbinary("RETR /go/ontology/go-basic.obo", callback=open("ich.obo", "wb").write)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/ftplib.py", line 443, in retrbinary
data = conn.recv(blocksize)
ConnectionResetError: [Errno 104] Connection reset by peer
>>>
マイDockerfileは次のようになります:
FROM python:3
CMD ["/bin/bash"]
私はこの順序でコンテナとPythonシェルを入力し、構築:
docker build --tag bue/py3ftp .
docker images
docker run -ti --name=abc bue/py3ftp /bin/bash
python
マイRETRコマンドは、次のエラーメッセージがスローされますボックスは、次のソフトウェアで構成されています。
-
ドッカーマシン
- ドッカー・マシン・バージョン0.8.2で使用
- OSX 10.11.6 ElCapitan
- VirtualBoxのバージョン5.1.8 r111374(Qt5.5.1)は、6b644ecを構築し、e18a919
- ドッカーバージョン1.12.3をビルド
- ドッカ容器内のpython 3.5.2(デフォルト、2016年11月10日、8時25分20秒)
バグがあり、誰のアイデアを持って? これはなぜ機能していないのですか? 私は開かなければならないポートか何か?
すべての入力に感謝! ベスト、 エルマー