Настраиваем прокси сервер на платформе Docker

Пошаговое руководство по настройке прокси-сервера в Docker через командную строку (CLI) и конфигурационный файл config.json. Зачем нужен Docker прокси.

Олександр Л.
Предпросмотр

Олександр Л.

12 июня 2025

2635

2635

12 июня 2025

Настройка прокси сервера может потребоваться на платформе Docker в ряде случаев. Самыми распространёнными являются обход лимитов веб-провайдера и проведение тестов разработанного вами ПО во многих геолокациях. Начнём с рассмотрения понятия Докера.

Что собой являет Докер

Докером называется набор продуктов, реализованных по принципу «платформа как услуга» (PaaS), которые используют виртуализацию на уровне ОС, чтобы доставлять программное обеспечение в пакетах, называемых контейнерами, то есть, производить контейнеризацию пакетов. У сервиса предусмотрены разные по оплате уровни: бесплатный и премиум с расширенными функциями. Данное программное обеспечение было выпущено в 2013 году. Иначе говоря, Докером называют платформу для разработки, доставки и запуска программного обеспечения, в которой можно отделить ваше ПО от вашей инфраструктуры. Таким образом, собранный контейнер можно запускать на разных ОС. Кроме того, вам будет приятно узнать, что платформа Docker поддерживает SSL, дающий отличную степень информационно-сетевой безопасности при работе с ней, в частности, при тестировании работы приложений. Контейнеризируемая информация содержит:

  • Само ПО, запуск которого требуется разработчиком;
  • Среду исполнения — виртмашину с набором минимально необходимых процессов;
  • Требуемые для запуска ПО файлы;
  • Сервер.

StableProxy

Нужны ли тебе анонимные прокси, премиум-решения для бизнеса или просто купить прокси недорого — у нас есть всё.


Настраиваем прокси в Докере

Имеются 2 пути настройки: посредством командной строки и используя конфиг. Работа в ком строке выглядит так:

  1. Поскольку вы будете использовать параметр proxy.example.com:Port, вам надо узнать айпи адрес своего proxy и используемый port.
  2. В ком строке пишем команду docker build, которая создаёт конфиг. В ней необходимо использовать аргумент --build-arg. Полная команда будет выглядеть таким образом: Bash
    docker build --build-arg HTTP_PROXY="http://proxy.example.com:Port" .
    
  3. Затем в командной же строке вводим команду docker run для запуска созданного конфига. Необходимо использовать аргумент --env. Полная команда будет выглядеть следующим образом: Bash
    docker run --env HTTP_PROXY="http://proxy.example.com:Port" redis
    

Настройка Docker прокси с помощью конфига выглядит так:

  1. В рабочей директории находите папку .docker. В ней должен быть файл, названный config.json. Создайте его в случае отсутствия.
  2. В файле, используя нравящийся вам кодовый редактор, вводите строки: JSON
    {
     "proxies": {
       "default": {
         "httpProxy": "http://proxy.example.com:Port",
         "httpsProxy": "https://proxy.example.com:Port",
         "ftpProxy": "https://proxy.example.com:Port",
         "noProxy": "*.test.example.com,.example.org,127.0.0.0/8"
       }
     }
    }
    
  3. На месте proxy.example.com:Port должны быть указаны данные вашего айпи и port, как и в примере с ком строкой.
  4. В файле конфига, как видно из кода выше, вы можете использовать 4 варианты прокси:
    • HttpProxy — для http варианта с отсутствующим шифрованием;
    • HttpsProxy — для https варианта с имеющимся шифрованием;
    • ftpProxy — для ftp варианта с целью передачи файлов, используя ftp;
    • noProxy — для направления прямого трафика.

Аналогичные варианты прокси вы должны использовать и при работе с ком строкой, зависимо от того, каков ваш прокси. После сохранения файла конфига docker proxy, указанные вами сведения будут применяться ко всем новым контейнерам и для уже готовых контейнеров, загружаемых из репозитория Докера.


Популярные вопросы

Как настроить авторизацию (логин и пароль) для прокси в Docker?

Если ваши прокси требуют аутентификации по логину и паролю, их необходимо добавить напрямую в URL-адрес прокси внутри конфигурационного файла или команды. Формат записи выглядит так: http://username:[email protected]:Port. Обратите внимание: если пароль содержит спецсимволы (например, @, :, /), их нужно закодировать в формате URL-encode.