Как использовать локальные настройки прокси в docker-compose - PullRequest
0 голосов
/ 16 января 2019

Я настраиваю новый сервер для нашей установки Redmine, поскольку старая установка была сделана вручную, что затрудняет правильное обновление. Я решил использовать образ Docker, но у меня возникли проблемы с запуском контейнера Docker из-за сообщения об ошибке. Хост работает за прокси-сервером, что, по-моему, и является причиной этой проблемы, так как все остальное, такое как wget, curl и т. Д., Работает нормально.

Сообщение об ошибке:

Pulling redmine (redmine:)...
ERROR: Get https://registry-1.docker.io/v2/: dial tcp 34.206.236.31:443: connect: connection refused

Я искал в Google информацию об использовании Docker / Docker-Compose с прокси-сервером в фоновом режиме и нашел несколько веб-сайтов, на которых люди сталкивались с такой же проблемой, но ни один из них действительно не помог мне решить мою проблему.

Я сверился с документацией Docker и нашел руководство, но мне кажется, это не работает: https://docs.docker.com/network/proxy/

Я также нашел ответ на вопрос здесь в StackOverflow: Использование прокси-сервера на docker-compose на сервере , которое может быть решением, которое мне нужно, но я не уверен, куда именно я должен поместить решение. Я предполагаю, что человек имеет в виду файл docker-compose.yml, но я могу ошибаться.

Вот как выглядит мой docker-compose.yml:

version: '3.1'

services:

redmine:
 image: redmine
 restart: always
 ports:
   - 80:3000
 environment:
   REDMINE_DB_MYSQL: db
   REDMINE_DB_PASSWORD: SECRET_PASSWORD

db:
image: mysql:5.7
restart: always
environment:
  MYSQL_ROOT_PASSWORD: SECRET_PASSWORD
  MYSQL_DATABASE: redmine

Я ожидаю выполнить следующую команду без вышеуказанного сообщения об ошибке

docker-compose -f docker-compose.yml up -d

1 Ответ

0 голосов
/ 16 января 2019

Я провел немного больше исследований и, похоже, использовал лучшие ключевые слова, потому что нашел свое решение сейчас. Я хотел поделиться этим решением со всеми, на случай, если кому-то еще это понадобится.

  • Создать папку для настройки службы Docker через systemd

mkdir /etc/systemd/system/docker.service.d

  • Создайте файл конфигурации службы на /etc/systemd/system/docker.service.d/http-proxy.conf и добавьте следующее во вновь созданный файл
[Service]
 # NO_PROXY is optional and can be removed if not needed
 # Change proxy_url to your proxy IP or FQDN and proxy_port to your proxy port
 # For Proxy server which require username and password authentication, just add the proper username and password to the URL. (see example below)

 # Example without authentication
 Environment="HTTP_PROXY=http://proxy_url:proxy_port" "NO_PROXY=localhost,127.0.0.0/8"

 # Example with authentication
 Environment="HTTP_PROXY=http://username:password@proxy_url:proxy_port" "NO_PROXY=localhost,127.0.0.0/8"
  • Перезагрузите systemctl, чтобы прочитать новые настройки

    sudo systemctl daemon-reload

  • Проверьте, правильно ли установлена ​​среда обслуживания Docker

    sudo systemctl show docker --property Environment

  • Перезапустите сервис докера, чтобы использовать обновленные параметры среды

    sudo systemctl restart docker

Теперь вы можете выполнить команду docker-compose на вашем компьютере, не получая никаких сообщений об ошибках connection refused.

...