Docker Engine API - Сброс соединения по пиру - PullRequest
3 голосов
/ 01 июля 2019

Я пытаюсь удаленно запрашивать API 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:

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

Есть идеи? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...