apt-получить тайм-аут в контейнере докеров

Общая информация: у меня есть док-контейнер, работающий в Ubuntu 18.04.1 LTS. Сам контейнер также работает на Ubuntu. Я за корпоративным прокси.

Проблема: когда я пытаюсь запустить «apt-get update», я каждый раз получаю сообщение об ошибке «время ожидания подключения истекло». Когда я пытаюсь пропинговать IP-адрес, он просто зависает и не отвечает.

Что я пробовал:

отредактировал /etc/default/docker для DNS и прокси отредактировал /etc/systemd/system/docker.service.d/http-proxy.conf У меня есть полный доступ в Интернет на моей хост-машине. Когда я запускаю apt-get update или любую другую команду в контейнере докеров, он распознает IP-адрес службы, но затем просто отключается.

==> Запуск создателя кворума на AWS EC2 Maschine (https://github.com/synechron-finlabs/quorum-maker#setting-up-quorum-network-on-multiple-machines)


person youNNN    schedule 30.10.2018    source источник


Ответы (1)


Вы должны определить прокси внутри образа. Обычно это делается при создании образа в Dockerfile.

# Define environment variable ENV http_proxy=http://my_username:my_password@my_host:port ENV https_proxy=https://my_username:my_password@my_host:port

Не уверен, как это сделать в образе на AWS... но, возможно, вы можете настроить переменные среды внутри контейнера с помощью экспорта, и этого должно быть достаточно, но это будет сделано только для этого сеанса. Если возможно, измените образ (создайте его снова), настроив прокси-среду vars.

person OscarAkaElvis    schedule 30.10.2018
comment
Эй, спасибо за вашу быструю помощь! Образ, который я использую, предварительно собран из репозитория GitHub... Я попытаюсь изменить env vars внутри контейнера, а затем зафиксировать в докере. - person youNNN; 30.10.2018
comment
Я попытался установить env vars с экспортом, теперь я не могу разрешить ‹proxy› - person youNNN; 30.10.2018
comment
Попробуйте настроить env vars, но оставьте все DNS как есть по умолчанию... так что отмените то, что вы сделали с DNS. - person OscarAkaElvis; 30.10.2018
comment
Изменил настройку DNS в /etc/default/docker на значение по умолчанию, перезапустил докер и запустил новый контейнер, сделал экспорт http_proxy=имя пользователя:пароль@прокси:8080 экспортировать https_proxy=имя пользователя:пароль@прокси:8080 все та же ошибка: не удалось разрешить "прокси"... - person youNNN; 30.10.2018
comment
Довольно странно... должно работать. У вас есть возможность собрать образ с помощью Dockerfile github? Попробуйте собрать его, настроив env vars. - person OscarAkaElvis; 30.10.2018
comment
Поэтому я установил два файла (http-proxy.conf и https-proxy.conf) в /etc/systemd/system/docker.service.d хост-машины. Например, когда я иду apt-get install nano, я получаю: Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Предлагаемые пакеты: заклинание Будут установлены следующие НОВЫЕ пакеты: nano 0 обновлен, 1 новый установлен , 0 для удаления и 0 без обновления. Нужно получить 191 кБ архивов. После этой операции будет использовано 700 кБ дополнительного дискового пространства. и после этого он застревает. Так что, очевидно, он получает всю информацию - person youNNN; 05.11.2018
comment
но потом застревает - person youNNN; 05.11.2018
comment
Что делать, если прокси не используется? А вне контейнера все нормально работает с подключением по http/https? - person Payalord; 17.08.2020