Docker Engine API-通过对等方重置连接

时间:2019-07-01 12:08:22

标签: docker go docker-api docker-engine

我正在尝试远程向Docker API发出请求。

我在虚拟机上运行了docker引擎,并且正在从docker容器发出请求。

首先,我这样做是为了使Docker守护进程在特定的IP和端口上进行侦听:

edit /lib/systemd/system/docker.service 
ExecStart=/usr/bin/docker -H fd:// -H=tcp://0.0.0.0:5555
systemctl daemon-reload
sudo service docker restart

我已配置为侦听0.0.0.0,因此可以在任何IPv4地址上访问它。

当我通过主机上的curl测试时,它工作正常。例如:curl localhost:5555 / services

但是,我的目标是从容器发出请求。这是我在go程序中构造docker客户端的方法:

cli, err := client.NewClientWithOpts(
     client.WithHost("tcp://192.168.56.1:5555"),
)
if err != nil {
     panic(err)
}

networkFilters := filters.NewArgs()
networkFilters.Add("driver", "overlay")
networks, err := cli.NetworkList(context.Background(), types.NetworkListOptions{Filters: networkFilters})
if err != nil {
    panic(err)
}

我遇到的错误:

http: panic serving 10.255.0.2:39632: error during connect: Get http://192.168.56.1:5555/v1.40/networks?filters=%7B%22driver%22%3A%7B%22overlay%22%3Atrue%7D%7D: read tcp 172.18.0.3:36126->192.168.56.1:5555: read: connection reset by peer

有什么想法吗?谢谢

0 个答案:

没有答案