Сбой входа Docker в AWS ECR с "dial tcp xxxx:443: I / O timeout"

Я прохожу курс "Scaling Docker для AWS", который определяет использование "aws ecr get-login" чтобы получить "docker login" командная строка.

Я использую докер версии 1.12.6.

Когда я запускаю командную строку вывода, в которой указан пользователь "AWS", длинный пароль и URL-адрес https в домене "amazonaws.com", я получаю что-то вроде следующего:

Error response from daemon: Get https://....amazonaws.com/v1/users/: dial tcp xx.xx.xx.xx:443: i/o timeout

Затем я попытался свернуться прямо к fqhn, и он подключился, но вернул 401 (что неудивительно, поскольку я не отправлял учетные данные при вызове curl).

Я также использовал nslookup чтобы убедиться, что fqhn разрешает IP-адрес, указанный в сообщении об ошибке (и два других IP-адреса).

Обратите внимание, что сейчас я запускаю это за брандмауэром корпорации. В "/etc/systemd/system/docker.service.d" У меня есть "http-proxy.conf"файл, который я считаю, правильно устанавливает HTTP_PROXY а также HTTPS_PROXY env vars.

Я также попытался отключиться от сети corp, сбросить два параметра var в этом файле, перезагрузить демон, перезапустить службу docker и снова запустить командную строку. Я получил точно такую ​​же ошибку.

Что еще я могу сделать, чтобы диагностировать это?

Обновление:

Поскольку я не мог придумать что-либо еще, я обновился с 1.12.6 до 18.03.0-ce. Результаты одинаковы. Я указал наш прокси-хост: порт в config.json, как описано в документации. Я удалил эту настройку, когда попытался установить соединение, не используя наш прокси (точка доступа Wi-Fi на моем телефоне).

2 ответа

Решение

Я наконец понял это. В этой заметке я не упомянул, что я делаю это на виртуальной машине VirtualBox.

Единственный способ, которым это может работать вообще, - это подключиться без брандмауэра корпорации, используя точку доступа на моем телефоне. Чего я не понял, так это того, что когда я подключаюсь к этому, мне также приходится менять сетевое соединение на виртуальной машине В брандмауэре corp это должен быть NAT, но когда я не в сети corp, он должен быть соединен. После того, как я удалил свои proxy env vars, я смог сгенерировать и успешно выполнить команду входа в систему aws ecr docker.

Вы перезагрузили systemd?

systemctl daemon-reload

Вы должны быть в состоянии проверить после перезагрузки, если ваш файл правильный

systemctl show --property Environment docker

Если это так, перезапуск докера должен работать через прокси

Другие вопросы по тегам