proxy Не удается загрузить изображения Docker за прокси





11 Answers

Настройки прокси-сервера APT не связаны с Docker.

Docker использует переменную среды HTTP_PROXY, если она присутствует, например:

sudo HTTP_PROXY=http://192.168.1.1:3128/ docker pull busybox

Но вместо этого я предлагаю вам посмотреть файл конфигурации /etc/default/docker : у вас должна быть строка для разблокировки (и, возможно, настройки), чтобы автоматически настроить параметры прокси-сервера. Затем перезапустите сервер Docker:

service docker restart
proxy docker

Я установил 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/";

Что я делаю неправильно?




На Ubuntu вам нужно установить http_proxy для демона Docker, а не клиентского процесса. Это делается в /etc/default/docker (см. here ).




Чтобы расширить ответ Аруна выше, для этого, чтобы работать в CentOS 7, мне пришлось удалить команды «export». Так редактировать

/etc/sysconfig/docker

И добавить:

HTTP_PROXY="http://<proxy_host>:<proxy_port>"
HTTPS_PROXY="https://<proxy_host>:<proxy_port>"
http_proxy="${HTTP_PROXY}"
https_proxy="${HTTPS_PROXY}"

Затем перезапустите Docker:

sudo service docker restart

Источник - это сообщение в блоге .




Это исправление, которое сработало для меня: Ubuntu, версия Docker: 1.6.2

В файле /etc/default/docker добавьте строку:

export http_proxy='http://<host>:<port>'

Перезапустить докер

sudo service docker restart



После установки Docker выполните следующие действия:

[mdesales@pppdc9prd1vq ~]$ sudo HTTP_PROXY=http://proxy02.ie.xyz.net:80 ./docker -d &
[2] 20880

Затем вы можете тянуть или делать что угодно:

mdesales@pppdc9prd1vq ~]$ sudo docker pull base
2014/04/11 00:46:02 POST /v1.10/images/create?fromImage=base&tag=
[/var/lib/docker|aa088847] +job pull(base, )
Pulling repository base
b750fe79269d: Download complete
27cf78414709: Download complete
[/var/lib/docker|aa088847] -job pull(base, ) = OK (0)



Чтобы решить проблему с curl в сборке Docker, я добавил следующее внутри файла Docker:

ENV http_proxy=http://infoprx2:8080
ENV https_proxy=http://infoprx2:8080
RUN apt-get update && apt-get install -y curl vim

Обратите внимание, что инструкция ENV находится перед оператором RUN.

И чтобы демон Docker смог получить доступ к Интернету (я использую Kitematic с boot2docker), я добавил следующее в /var/lib/boot2docker/profile :

export HTTP_PROXY=http://infoprx2:8080
export HTTPS_PROXY=http://infoprx2:8080

Затем я перезапустил Docker с sudo /etc/init.d/docker restart .




Просто установка переменных среды прокси не помогла мне в версии 1.0.1 ... Мне пришлось обновить файл /etc/default/docker.io с правильным значением для переменной «http_proxy».




Если вы работаете в Ubuntu, выполните эти команды, чтобы добавить свой прокси-сервер.

sudo nano /etc/default/docker

И раскомментируйте строки, которые указывают

#export http_proxy = http://username:password@10.0.1.150:8050

И замените его соответствующим прокси-сервером и именем пользователя.

Затем перезапустите Docker, используя:

service docker restart

Теперь вы можете запускать команды Docker за прокси:

docker search ubuntu



Поскольку мне еще не разрешено прокомментировать:

Для CentOS 7 мне нужно было активировать EnvironmentFile в «docker.service», как описано здесь: Управление и настройка Docker с помощью systemd .

Изменить: я добавляю свое решение, как было сказано Нилешем. Мне нужно было открыть «/etc/systemd/system/docker.service», и мне пришлось добавить в раздел

[Обслуживание]

EnvironmentFile = - / и т.д. / sysconfig / Докер

Только тогда был загружен файл «etc / sysconfig / docker» в моей системе.




На RHEL6.6 работает только это (обратите внимание на использование export ):

/ и т.д. / sysconfig / Докер

export http_proxy="http://myproxy.example.com:8080"
export https_proxy="http://myproxy.example.com:8080"

ПРИМЕЧАНИЕ. Оба могут использовать протокол http .)

Благодаря https://crondev.com/running-docker-behind-proxy/




Попробуй это:

sudo HTTP_PROXY=http://<IP address of proxy server:port> docker -d & 



Related


Tags

proxy   docker