Налаштовуємо проксі-сервер на платформі Docker

Покрокове керівництво з налаштування проксі-сервера в Docker через командний рядок (CLI) та файл конфігурації config.json. Навіщо потрібен Docker проксі.

Олександр Л.
Попередній перегляд

Олександр Л.

12 червня 2025

2633

2633

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.