1166 просмотров

Настройка прокси в Docker

Используя контейнеризатор приложений Docker, разработчики могут столкнуться с ситуацией, когда нужно изменить параметры сети, чтобы протестировать приложение в разных ГЕО или обойти ограничение интернет-провайдера. Проблема решается с помощью настройки прокси в Docker. Как это сделать? Предлагаем пошаговую инструкцию.

Для начала коротко расскажем, что такое Docker. Это платформа, предназначенная для упаковки приложений в контейнеры. Каждый контейнер, помимо самого приложения, содержит исполнительную среду (виртуальную машину, содержащую только необходимые процессы операционной системы), сервер и другие файлы, которые нужны для запуска софта.

Достоинство контейнеризации — у вас есть готовый образ с веб-приложением. Его можно запустить на локальном компьютере с Windows без развертывания веб-сервера, потом перебросить на MacBook без пересборки проекта и напоследок установить на сервер с ОС Linux без дополнительной подготовки инфраструктуры.

Видео по настройке прокси в Docker

Как настроить прокси в Docker

В Docker предусмотрен встроенный прокси-клиент. Доступно два способа установки сетевых настроек: через создание конфигурационного файла для Docker клиента и через командную строку.

Пошаговая настройка прокси в Docker через файл конфигурации:

  1. Откройте файл конфигурации в папке ~/.docker/config.json. Если файла config.json нет, создайте его.
  2. Откройте блокнот или любой редактор кода и добавьте в файл такие строки:
  3. {

    "proxies": {

    "default": {

    "httpProxy": "http://proxy.example.com:Port",

    "httpsProxy": "https://proxy.example.com:Port",

    "noProxy": "*.test.example.com,.example.org,127.0.0.0/8"

    }

    }

    }

  4. Вместо “http://proxy.example.com:Port” укажите IP адрес прокси и порт. К сожалению, во встроенном клиенте нет поддержки авторизации по логину и паролю. Чтобы обеспечить комфортную работу без задержек, рекомендуем использовать приватные прокси с авторизацией по IP.
  5. После сохранения файла, настройки прокси будут применены для всех новых контейнеров, а также готовых сборок, загруженных из репозитория Docker Hub.

В конфигурации можно задать такие параметры:

  • HttpProxy — устанавливает прокси без шифрования. В командной строке для этого нужно присвоить аргумент HTTP_PROXY;
  • HttpsProxy — устанавливает прокси с SSL-шифрованием. В командной строке — HTTPS_Proxy;
  • ftpProxy используется для управления сеансами FTP. Имеет аргумент Ftp_Proxy;
  • noProxy — параметр нужен для формирования списка исключений, для которых трафик направляется напрямую. Устанавливает аргумент NO_PROXY.

К сожалению, последняя версия платформы не поддерживает socks прокси.

Настройка прокси через командную строку

Настроить прокси можно через командную строку, используя команды «docker build» (создание конфигурации) и «docker run» (запуск конфигурации) с присвоением флага -env.

Прокси прописываются в таком формате: PROTOCOL_PROXY="IP-address:Port". Код для HTTP-прокси будет выглядеть следующим образом:

docker build --build-arg HTTP_PROXY="http://proxy.example.com:3128"

docker run --env HTTP_PROXY="http://proxy.example.com:3128" redis

Настроить прокси в Docker можно буквально двумя командами. Платформа поддерживает прокси с SSL-шифрованием, что позволяет значительно повысить сетевую безопасность при тестировании приложений.