dockerpy sdk无法连接到远程服务器

8xiog9wr  于 2022-11-02  发布在  Docker
关注(0)|答案(1)|浏览(128)

bounty将在5天后过期。回答此问题可获得+50的声望奖励。jaal kamza希望吸引更多人关注此问题。

我目前正在尝试使用dockerpy sdk连接到我的远程ubuntu服务器,这样我就可以通过python管理我的docker容器了。
我得到了一些问题时,试图这样做。

docker.APIClient(base_url="ssh://user@ip")

在执行以下操作时,我收到错误:

paramiko.ssh_exception.PasswordRequiredException: private key file is encrypted

我可以通过添加kwarg来解决此问题:use_ssh_client,但之后我被迫输入密码,这限制了自动化的潜力。

docker.APIClient(base_url="ssh://user:@ip", use_ssh_client=True)

在使用上面的代码时,我也尝试过将我的ssh密钥密码输入到base_url中,例如:

docker.APIClient(base_url="ssh://user:pass@ip", use_ssh_client=True)

但是,这会向我显示以下错误:

docker.errors.DockerException: Invalid bind address format: ssh://root:pass@ip

我已经没有什么想法了,我很困惑我应该如何绕过这个问题?
非常感谢...

pobjuy32

pobjuy321#

即使是关于 docker.client.DockerClient 的问题,也有可能以Piere先生的身份建立联系,因为它在幕后使用了 docker.api.client.APIClient
您正在尝试使用密码验证建立连接,这就是您要求提示输入密码的原因。我猜您需要配置基于密钥的SSH登录,如Docker的文档中所述
修复步骤:

  1. configure SSH登录远程服务器并在本地计算机上填写~/.ssh/config
    1.使用ssh命令从本地终端连接以确保建立连接 * 而不询问口令 * ssh user@ip
    1.使用库client = docker. APIClient(base_url="ssh://user@ip", use_ssh_client=True)连接

相关问题