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



Мне нужно настроить прокси корпорации, чтобы Docker мог загружать изображения из публичного реестра.



$ sudo docker run hello-world 
Unable to find image 'hello-world:latest' locally
Pulling repository docker.io/library/hello-world
Error while pulling image: Get https://index.docker.io/v1/repositories/library/hello-world/images: dial tcp: lookup index.docker.io: no such host


Я использую Ubuntu 12.04 machine. Я нашел этот ответ, но systemctl нет в Ubuntu 12.04. Как я могу это сделать?



Спасибо.

483   6  

6 ответов:

Я получал следующую ошибку при попытке запустить контейнер hello-world

$docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp 34.205.194.204:443: getsockopt: no route to host.

Я попробовал шаги в следующей ссылке, которая работала для меня в отношении HTTPS или HTTP конфигурации

Https://docs.docker.com/engine/admin/systemd/#httphttps-proxy

На CentOS, что работает для меня, это добавить эту строку к /etc/sysconfig/docker:

http_proxy=your_proxy:port

Из официальной документации Docker,

Создайте раскрывающийся каталог systemd для службы docker:

$ sudo mkdir -p /etc/systemd/system/docker.service.d

Создайте файл с именем /etc/systemd/system/docker.service.d/http-proxy.conf, который добавляет переменную окружения HTTP_PROXY:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"

Или, если вы находитесь за прокси-сервером HTTPS, создайте файл с именем /etc/systemd/system/docker.service.d/https-proxy.conf, который добавляет переменную окружения HTTPS_PROXY:

[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/"

Если у вас есть внутренние реестры Docker, с которыми вы должны связаться без проксирования, вы можете указать их через среду NO_PROXY переменная:

[Service]    
Environment="HTTP_PROXY=http://proxy.example.com:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"

Или, если вы находитесь за HTTPS прокси-сервером:

[Service]    
Environment="HTTPS_PROXY=https://proxy.example.com:443/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"

Изменения Флеша:

$ sudo systemctl daemon-reload

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

$ sudo systemctl restart docker

Убедитесь, что конфигурация загружена:

$ systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://proxy.example.com:80/

Или, если вы находитесь за HTTPS прокси-сервером:

$ systemctl show --property=Environment docker
Environment=HTTPS_PROXY=https://proxy.example.com:443/

Необходимо установить прокси-сервер как для сервера docker (docker-machine), так и для клиента docker (docker).

Установить прокси для docker-машины: Я думаю, что вы можете указать это при создании машины, см. docker / toolbox#102 (comment)

docker-machine create -d virtualbox \
--engine-env HTTP_PROXY=http://example.com:8080 \
--engine-env HTTPS_PROXY=https://example.com:8080 \
--engine-env NO_PROXY=example2.com \
default

Установить прокси для docker (клиента)

Windows

set http_proxy=http://example.com:8080
set https_proxy=https://example.com:8080

Linux

export http_proxy=http://example.com:8080
export https_proxy=https://example.com:8080

Только для Ubuntu

Отредактируйте /etc/defaults/docker.io и добавьте следующие строки:

export http_proxy='http://user:password@proxy-host:proxy-port'

Затем перезапустить демон docker:

sudo service docker.io restart

Несмотря на добавление прокси, docker версии "18.06.0" не работает, однако нижняя версия docker работает нормально.

Edit 1: повторная установка docker-ce будет работать !!

Comments

    Ничего не найдено.