加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

macos – 在OSX上通过docker-py连接到Docker-Machine

发布时间:2020-12-16 03:31:09 所属栏目:安全 来源:网络整理
导读:上下文 我试图在OSX上使用docker-py连接到docker-machine. 我不能简单地使用标准客户端(base_url =unix://var/run/docker.sock),因为docker在docker-machine虚拟机上运行,??而不是我的本地操作系统. 相反,我试图使用docker.tls安全地连接到VM: from docker

上下文

我试图在OSX上使用docker-py连接到docker-machine.

我不能简单地使用标准客户端(base_url =’unix://var/run/docker.sock’),因为docker在docker-machine虚拟机上运行,??而不是我的本地操作系统.

相反,我试图使用docker.tls安全地连接到VM:

from docker import Client
import docker.tls as tls
from os import path

CERTS = path.join(path.expanduser('~'),'.docker','machine','certs')

tls_config = tls.TLSConfig(
    client_cert=(path.join(CERTS,'cert.pem'),path.join(CERTS,'key.pem')),ca_cert=path.join(CERTS,'ca.pem'),verify=True
#verify=False
)
client = docker.Client(base_url='https://192.168.99.100:2376',tls=tls_config)

问题

当我尝试运行此代码(在下一行运行类似print client.containers()的东西)时,我收到此错误:

requests.exceptions.SSLError: hostname '192.168.99.100' doesn't match 'localhost'

我一直试图跟随github issue关于boot2docker的类似问题,即.旧版本的docker-machine,但我不太了解SSL证书的实现方式.我尝试在github问题中建议将192.168.99.100 localhost添加到我的/ etc / hosts文件的末尾,但这并没有解决问题(即使在导出DOCKER_HOST = tcp:// localhost:2376之后).

也许通过证书连接不是停靠码机的方法,所以任何通过docker-py连接到特定码头机的替代方法的答案也是可以接受的.

UPDATE
看起来像docker-machine的v0.5.2试图通过–tls-san标志为create命令解决这个问题.需要验证但是通过brew的安装仍然给出了v0.5.1,所以我必须手动安装.

最佳答案
看起来像Docker-py v1.8.0你可以像下面那样连接到Docker-machine;

import docker
client = docker.from_env(assert_hostname=False)
print client.version()

请参阅doc here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读