连接到托pipe在远程服务器上的docker

我如何连接到远程docker主机使用Python?

>>> from docker import Client >>> cli = Client(base_url='tcp://52.90.216.176:2375') >>> >>> cli.containers() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/site-packages/docker/api/container.py", line 69, in containers res = self._result(self._get(u, params=params), True) File "/usr/local/lib/python2.7/site-packages/docker/utils/decorators.py", line 47, in inner return f(self, *args, **kwargs) File "/usr/local/lib/python2.7/site-packages/docker/client.py", line 112, in _get return self.get(url, **self._set_request_timeout(kwargs)) File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 480, in get return self.request('GET', url, **kwargs) File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 468, in request resp = self.send(prep, **send_kwargs) File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 576, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python2.7/site-packages/requests/adapters.py", line 437, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='52.90.216.176', port=2375): Max retries exceeded with url: /v1.21/containers/json?all=0&limit=-1&trunc_cmd=0&size=0 (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fd87d836750>: Failed to establish a new connection: [Errno 111] Connection refused',)) 

如果我login到52.90.216.176并使用以下内容:

 >>> cli = Client(base_url='unix://var/run/docker.sock') 

这工作。 但是,如何连接到另一台服务器上运行的docker?

这听起来像你使用docker-py。

另外,听起来也许你对TLS不熟悉,所以请阅读Docker-py使用TLS的文档。 您可能需要下载您的TLS文件,并将它们本地复制到docker-py客户端,因为它们用于validation您是否有权连接到Docker守护程序。

我希望你的远程Docker守护进程不会暴露给世界。

如果它没有运行TLS(暴露于世界):

 client = docker.Client(base_url='<https_url>', tls=False) 

如果使用TLS进行保护(不暴露于世界):

 client = docker.Client(base_url='<https_url>', tls=True) 

这不是答案,但需要您的反馈。

错误消息是: Connection refused ,所以你可以运行命令:

 telnet 52.90.216.176 2375 

确认是否没有防火墙问题。 有时港口是2376

添加tcp选项到sys config,如下所示:

 vi /etc/sysconfig/docker OPTIONS="--host=tcp://0.0.0.0:2375" 

重新启动docker后,我可以连接到远程docker服务器使用Python。