在Docker容器中运行时Python中的SFTP密钥错误

时间:2019-10-11 04:08:49

标签: python docker sftp pysftp

我制作了一个与SFTP服务器连接并读取数据的python代码。当我在计算机上运行python脚本时,效果很好。

出于部署目的,我需要一个docker映像。所以我做了一个。

但是,当我运行docker容器时,出现以下错误:

enter image description here

Dockerfile代码:

FROM python:3
ADD sftp.py /
ADD config.properties /

RUN pip install pandas pysftp requests configparser

CMD ["python","./sftp.py"]

用于连接sftp的Python代码:

cnopts = pysftp.CnOpts(knownhosts=None)
cnopts.hostkeys = None
with pysftp.Connection(host=hostname,username=username,password=password,cnopts=cnopts) as sftp:
    sftp.chdir("Optimove_Output")

我无法弄清为什么它不能在docker容器中工作。由于此代码在没有容器的情况下可以运行。

1 个答案:

答案 0 :(得分:1)

那是因为在您的本地主机中有文件“ known_hosts”,请尝试运行您的容器,以便:

docker run -v $HOME/.ssh/known_hosts:/root/.ssh/known_hosts sbtech2