Как получить доступ к незащищенному реестру докера из докера Windows на компьютере с Windows 10? - PullRequest
0 голосов
/ 20 октября 2018

У меня есть 2 машины под управлением Dockerd.Один ящик Ubunto.18.04 с установленной докерской версией 18.06.1-ce, который я хочу использовать в качестве небезопасного тестового сервера реестра / хранилища, где я буду использовать единственный способ - использовать SSH-туннель для порта 5000.

Другая - рабочая станция для разработки, Windows 10 'pro' box, в которой также есть локальный экземпляр docker (docker для Windows версии 18.06.1-ce), работающий в качестве службы, которую я использую для сборкитестовые изображения.

Пока что я не могу заставить окно Windows выдвигать или извлекать окно Ubuntu через туннель.

Оба док-станции работают.Я добавил параметр небезопасных реестров на рабочую станцию ​​(через графический интерфейс докера я не смог найти файл daemon.json, поэтому предположил, что он находится в реестре Windows или в скрытом месте?)

Я добавил localhost: 5000 втест для использования туннеля SSHE и Dev2:5000 (временно для этого теста был открыт порт 5000 во внутренней подсети) для тестирования прямого соединения без туннеля и перезапуска докера.

В окне реестра я следовал примеруо том, как использовать частный реестр и сделал ниже, чтобы проверить его.Я вошел в "Dev2" как пользователь, которого я добавил в группу "docker", которая также имеет права sudo.Я тоже попробовал как root.

Dev2:> docker pull ubuntu:18.04
# success

Dev2:> docker tag ubuntu:18.04 localhost:5000/testapp:00.01
Dev2:> docker push localhost:5000/testapp/00.01
# success

Dev2:> docker tag ubuntu:18.04 Dev2:5000/testapp:00.02
Dev2:> docker push Dev2:5000/testapp/00.02
# success

Dev2:> docker image rm ubuntu:18.04
# success

Dev2:> docker image ls -a

REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
localhost:5000/testapp   00.01               ea4c82dcd15a        40 hours ago        85.8MB
Dev2:5000/testapp        00.02               ea4c82dcd15a        40 hours ago        85.8MB
registry                 2                   2e2f252f3c88        5 weeks ago         33.3MB


Dev2:> curl http://localhost:5000/v2/_catalog
{"repositories":["testapp"]}

Dev2:>  curl http://localhost:5000/v2/testapp/tags/list
{"name":"testapp","tags":["00.01","00.02"]}

Dev2:> curl http://Dev2:5000/v2/_catalog
{"repositories":["testapp"]}

Dev2:> curl http://Dev2:5000/v2/testapp/tags/list
{"name":"testapp","tags":["00.01","00.02"]}

На данный момент все вроде бы нормально.Если я удаляю изображения в докере Dev2 и извлекаю их, они извлекаются из репозитория и повторно добавляются в экземпляр докера.

Теперь я пытаюсь вытянуть изображения в докер на рабочей станции.

Я запускаю ssh tunnel ssh на рабочей станции Windows 10 (версия Msys GNU)

workstation:> ssh nyc.livingwork.com -L 5000:localhost:5000 &  # this runs and the tunnel workstation

Я также пытаюсь использовать браузер (без скручивания) с URL:

http://Dev2:5000/v2/testapp/tags/list и http://localhost:5000/v2/testapp/tags/list

И я получаю оба: {"name": "testapp", "tags": ["00.01", "00.02"]}

Так чтосервер доступен как напрямую, так и через туннель.

Теперь я пытаюсь:

workstation:$ docker pull localhost:5000/testapp:00.01
Error response from daemon: Get http://localhost:5000/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

workstation:> docker pull Dev2:5000/testapp:00.02
Error response from daemon: Get http://Dev2:5000/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

Время ожидания составляет не менее 30 секунд.Примечание: если я делаю то же самое из другого Unix-бокса с запущенным Docker, все работает правильно, так что это особенно относится к Docker для Windows, работающей в Windows 10. По какой-то причине это не удается.

Я не смог решитьэтот.Нет ни одного HTTP-прокси в цепочке ни на одной машине.Он находится в локальной подсети.Доступны все остальные службы на сервере и т. Д. «Небезопасные реестры» в окне настройки Windows в пользовательском интерфейсе установлены для хостов и портов.

Это ошибка?В Windows 10 докер?Он отлично работает из другой коробки Ubuntu.

1 Ответ

0 голосов
/ 24 июня 2019

В случае, если кто-то все еще сталкивается с этим.Я испытывал ту же проблему.Я смог «исправить» это, перейдя на daemon.json и отключив экспериментальные функции.Вот мой конфиг json:

{
  "insecure-registries": [
    "localhost:5000"
  ],
  "debug": true,
  "experimental": false,
  "registry-mirrors": []
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...