Я установил Docker на свою Ubuntu 13.10 (Saucy Salamander) и когда я печатаю в своей консоли:
sudo docker pull busybox
Я получаю следующую ошибку:
Pulling repository busybox
2014/04/16 09:37:07 Get https://index.docker.io/v1/repositories/busybox/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: no answer from server
Версия докера:
$ sudo docker version
Client version: 0.10.0
Client API version: 1.10
Go version (client): go1.2.1
Git commit (client): dc9c28f
Server version: 0.10.0
Server API version: 1.10
Git commit (server): dc9c28f
Go version (server): go1.2.1
Last stable version: 0.10.0
Я за прокси-сервером без аутентификации, и это мой /etc/apt/apt.conf
файл:
Acquire::http::proxy "http://192.168.1.1:3128/";
Acquire::https::proxy "https://192.168.1.1:3128/";
Acquire::ftp::proxy "ftp://192.168.1.1:3128/";
Acquire::socks::proxy "socks://192.168.1.1:3128/";
Что я делаю не так?
Acquire::socks::proxy
означает установить прокси для всех URL, начиная соsocks
схемы. Поскольку у васsources.list
нетsocks://
URL, эта строка полностью игнорируется.docker-compose
?Ответы:
Вот ссылка на официальную документацию Docker для прокси HTTP: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
Быстрый набросок:
Сначала создайте системный каталог для службы Docker:
Теперь создайте файл с именем,
/etc/systemd/system/docker.service.d/http-proxy.conf
который добавляетHTTP_PROXY
переменную окружения:Если у вас есть внутренние реестры Docker, с которыми вам нужно связаться без прокси, вы можете указать их через
NO_PROXY
переменную окружения:Флеш изменения:
Убедитесь, что конфигурация была загружена:
Перезапустите Docker:
источник
/etc/default/docker
не работает. Может быть, я должен удалить,export
как тот, который задокументирован для Centos.sudo systemctl restart docker
это строго необходимо для его работы.systemctl
он недоступен для Ubuntu 14.04, он используетupstart
для вызова сервисов.Ваши настройки прокси APT не связаны с Docker.
Docker использует переменную среды HTTP_PROXY, если она есть. Например:
Но вместо этого я предлагаю вам взглянуть на ваш
/etc/default/docker
файл конфигурации: у вас должна быть строка, чтобы раскомментировать (и, возможно, настроить), чтобы автоматически применить настройки прокси. Затем перезапустите сервер Docker:источник
В CentOS файл конфигурации для Docker находится по адресу:
Добавление строки ниже помогло мне заставить демон Docker работать за прокси-сервером:
источник
export
. Вы уверены, что это правильно?export
работает только на CentOS6 и без CentOS7export HTTP_PROXY=...
это Bashism, для не-Bash-оболочек (например, что может быть / bin / sh), используйте две строки,HTTP_PROXY=...
а затемexport HTTP_PROXY
сказал, что мне вообще не нужноexport
.Если вы используете новый Docker для Mac (или Docker для Windows ), просто щелкните правой кнопкой мыши значок Docker на панели задач и выберите « Настройки» (Windows: Настройки), затем перейдите в «Дополнительно» и в разделе «Прокси» укажите настройки прокси-сервера. Нажмите Apply и Restart и дождитесь перезапуска Docker.
источник
В Ubuntu вам нужно установить http_proxy для демона Docker, а не клиентский процесс. Это сделано в
/etc/default/docker
(см. Здесь ).источник
Чтобы расширить ответ Аруна , чтобы это работало в CentOS 7, мне пришлось удалить команды «export». Так редактировать
И добавить:
Затем перезапустите Docker:
Источник этого блога .
источник
Почему локально связанный прокси не работает
Эта проблема
Если вы используете локально связанный прокси - сервер, например, слушаете
127.0.0.1:8989
, он не будет работать в Docker для Mac . Из документации Docker :Аналогично для серверной части Docker. (Чтобы понять сторону сервера и сторону клиента Docker, попробуйте запустить
docker version
.) И сторона сервера работает на уровне виртуализации, который имеет свой собственныйlocalhost
. Следовательно, он не будет подключаться к прокси-серверуlocalhost
операционной системы хоста.Решение
Поэтому, если вы используете локально-связанный прокси-сервер, такой как я, вам, в принципе, придется сделать следующее, чтобы он работал с Docker для Mac:
Сделайте так, чтобы ваш прокси-сервер слушал
0.0.0.0
вместо127.0.0.1
. Внимание: вам потребуется правильная настройка брандмауэра, чтобы предотвратить злонамеренный доступ к нему.Добавьте псевдоним петли в
lo0
интерфейс, например10.200.10.1/24
:Установите HTTP и / или HTTPS прокси
10.200.10.1:8989
из Preferences в меню Докер лотка (предположим , что прокси - сервер прослушивает порт8989
).После этого проверьте настройки прокси, выполнив команду в новом контейнере из образа, который не загружен:
Примечание: псевдоним петли, установленный параметром,
ifconfig
не сохраняется после перезагрузки. Чтобы сделать это постоянным, другая тема. Пожалуйста, проверьте эту запись в блоге на японском языке (Google Translate может помочь).источник
Это исправление, которое работало для меня: Ubuntu, версия Docker: 1.6.2
В файле
/etc/default/docker
добавьте строку:Перезапустите Docker
источник
Чтобы настроить Docker для работы с прокси-сервером, необходимо добавить переменную среды HTTPS_PROXY / HTTP_PROXY в файл sysconfig Docker (
/etc/sysconfig/docker
).В зависимости от того, используете ли вы
init.d
или сервисный инструмент, вам нужно добавить оператор «export» (из-за журналов отчетов об ошибках Debian - # 767441. Примеры в / etc / default / docker вводят в заблуждение относительно поддерживаемого синтаксиса ):Хранилище Docker (Docker Hub) поддерживает только HTTPS. Чтобы заставить Docker работать с перехватчиками SSL, вы должны добавить корневой сертификат прокси-сервера в хранилище доверенных сертификатов системы.
Для CentOS скопируйте файл
/etc/pki/ca-trust/source/anchors/
и обновите хранилище доверенных сертификатов CA и перезапустите службу Docker.Если ваш прокси использует аутентификацию NTLMv2 - вам нужно использовать промежуточные прокси, такие как Cntlm, чтобы соединить аутентификацию. Этот пост в блоге объясняет это подробно .
источник
В новой версии Docker, docker-engine , в дистрибутиве на основе systemd вы должны добавить строку переменной окружения в /lib/systemd/system/docker.service , как упоминалось другими:
источник
После установки Docker сделайте следующее:
Затем вы можете вытащить или сделать что-нибудь:
источник
Как я не могу комментировать пока:
Для CentOS 7 мне нужно было активировать EnvironmentFile в «docker.service», как описано здесь: Управление и настройка Docker с помощью systemd .
Изменить: я добавляю свое решение, как указано Nilesh. Мне нужно было открыть "/etc/systemd/system/docker.service", и я должен был добавить в разделе
Только тогда файл "etc / sysconfig / docker" был загружен в мою систему.
источник
Чтобы решить проблему с curl в сборке Docker, я добавил следующее в Dockerfile:
Обратите внимание, что оператором ENV является ПЕРЕД оператором RUN.
И чтобы демон Docker мог выходить в Интернет (я использую Kitematic с boot2docker), я добавил следующее в
/var/lib/boot2docker/profile
:Затем я перезапустил Docker с
sudo /etc/init.d/docker restart
.источник
Если вы используете прокси socks5, вот мой тест с Docker 17.03.1-ce с настройкой «all_proxy», и он работал:
источник
Полное решение для Windows, для настройки параметров прокси.
Вы можете настроить его напрямую, щелкнув правой кнопкой мыши на настройках, на значке Docker и затем Прокси.
Там вы можете настроить адрес прокси, порт, имя пользователя и пароль.
В этом формате:
Пример:
Ничего больше, чем это.
источник
Простая установка переменных окружения прокси не помогла мне в версии 1.0.1 ... Мне пришлось обновить
/etc/default/docker.io
файл, указав правильное значение для переменной http_proxy.источник
Если вы находитесь в Ubuntu, выполните эти команды, чтобы добавить свой прокси.
И раскомментируйте строки, которые указывают
И замените его соответствующим прокси-сервером и именем пользователя.
Затем перезапустите Docker, используя:
Теперь вы можете запускать команды Docker за прокси:
источник
Возможно, вам нужно настроить строчные переменные. В моем случае мой файл /etc/systemd/system/docker.service.d/http-proxy.conf выглядит так:
Удачи! :)
источник
Я также столкнулся с той же проблемой за брандмауэром. Выполните следующие шаги:
Не используйте и не удаляйте файл https_prxoy.conf.
Перезагрузите и перезапустите контейнер Docker:
источник
Если вы находитесь в Ubuntu, вы должны выполнить эту команду:
И перезагрузите Docker с помощью:
Или пойти
/etc/docker.io
с нано ...источник
В Ubuntu 14.04 (Trusty Tahr) с Docker 1.9.1 я просто раскомментировал
http_proxy
строку, обновил значение и перезапустил службу Docker.а потом
источник
На RHEL6.6 работает только это (обратите внимание на использование
export
):/ И т.д. / sysconfig / Докер
ПРИМЕЧАНИЕ. Оба могут использовать
http
протокол.)Благодаря https://crondev.com/running-docker-behind-proxy/
источник
В моей сети Ubuntu работает за корпоративным прокси-сервером ISA. И это требует аутентификации. Я перепробовал все решения, упомянутые выше, и ничего не помогло. Что действительно помогло, так это написать строку прокси в файле
/etc/systemd/system/docker.service.d/https-proxy.conf
без имени домена.Вместо того
или
и некоторые другие замены, такие как
@ -> %40
или\ -> \\
я пытался использоватьИ это работает сейчас.
источник
Попробуй это:
источник
Это не совсем отвечает на вопрос, но может помочь, особенно если вы не хотите иметь дело с служебными файлами.
В случае, если вы размещаете изображение, один из способов - вместо этого преобразовать изображение в архив tar, используя что-то вроде следующего на сервере .
Просто скачайте архив и превратите его обратно в изображение.
источник