Бесплатное тестирование доступно для жителей Франции , Великобритании или Сингапура в Telegram Присоединяйтесь к Telegram
Руководство по настройке Docker

Настройка мобильного прокси в Docker

Пошаговое руководство по настройке мобильного прокси в Docker. Настройте загрузку демонов, многоэтапную сборку, среды выполнения контейнеров и Docker Compose с использованием реальных IP-адресов операторов 4G/5G.

PXM2 Proxies September 22, 2026 Время чтения: 8 минут
Containers Docker Engine и Compose
3 Layers Демон, сборка, среда выполнения
NO_PROXY Защита внутренней подсети
7+ Доступно стран
  • Четкая граница между слоями — настройте прокси-переменные для загрузки образов демона Docker, этапов сборки или среды выполнения контейнеров независимо друг от друга.
  • Оркестрация с помощью Docker Compose — передача настроек HTTP_PROXY и NO_PROXY конкретным микросервисам без нарушения сетевой инфраструктуры хоста.
  • Чистый обход внутренней сети — обеспечьте прямой доступ к базам данных и службам localhost при соблюдении строгих правил NO_PROXY.
  • Предотвращение утечки учетных данных из кэша — передавайте учетные данные прокси через аргументы сборки или секреты Docker, чтобы избежать записи паролей в слои образа.
Мобильные прокси 4G / 5G Контейнерные рабочие нагрузки
Совместимость двигателейDocker CE, Podman, Docker Compose
Режимы работы сетиbridge, host, overlay
Поддерживаемые протоколыHTTP, HTTPS, SOCKS5
БезопасностьИзоляция аргументов сборки и подключение секретных данных
Изолированные среды

Безопасные строительные конвейеры

Динамическое масштабирование

Среда прокси-сервера Docker

Настройка прокси в Docker часто вызывает недопонимание, поскольку Docker работает в рамках трёх изолированных сетевых границ: демон Docker (dockerd), процесс сборки (docker build) и запущенные экземпляры контейнеров (docker run). Настройка прокси на одном уровне не распространяется на остальные. Понимание этих трёх отдельных областей применения имеет решающее значение для построения надёжных контейнерных прокси-конвейеров.

Уровень области применения Что он контролирует Местоположение конфигурации
Область действия демона Загрузка образов с Docker Hub / реестров /etc/systemd/system/docker.service.d/http-proxy.conf
Объем работ Установка пакетов (apt-get, pip, npm) в файле Dockerfile --build-arg HTTP_PROXY=...
Среда выполнения контейнеров Исходящий трафик от запущенных приложений docker run -e HTTP_PROXY=... or docker-compose.yml

Настройка прокси-сервера для контейнеров

Чтобы направлять исходящий трафик из контейнера через выделенный мобильный прокси-сервер, необходимо во время выполнения задать стандартные переменные среды прокси. Большинство контейнерных сред выполнения (Python, Go, Node.js, cURL) автоматически считывают эти переменные при инициализации.

Запуск контейнера с переменными среды мобильного прокси
docker run --rm \
  -e HTTP_PROXY="http://user123:secret456@proxy.pxm2.io:8000" \
  -e HTTPS_PROXY="http://user123:secret456@proxy.pxm2.io:8000" \
  -e NO_PROXY="localhost,127.0.0.1,host.docker.internal" \
  curlimages/curl:latest https://ipinfo.io/json
Директива NO_PROXY обеспечивает защиту связи между контейнерами и локальным хостом

В качестве альтернативы вы можете настроить файл конфигурации клиента Docker CLI (~/.docker/config.json) таким образом, чтобы настройки прокси автоматически вставлялись во все вновь запускаемые контейнеры без необходимости повторного указания флагов -e.

Настройки прокси по умолчанию для клиента (~/.docker/config.json)
{
  "proxies": {
    "default": {
      "httpProxy": "http://user123:secret456@proxy.pxm2.io:8000",
      "httpsProxy": "http://user123:secret456@proxy.pxm2.io:8000",
      "noProxy": "localhost,127.0.0.1,.internal"
    }
  }
}
Автоматически применяет прокси-переменные среды к контейнерам, запущенным этим пользователем

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

В стеках из нескольких контейнеров Docker Compose позволяет точно контролировать, какие сервисы используют мобильные прокси, а какие взаимодействуют напрямую через локальные сети. Например, рабочие экземпляры, занимающиеся сбором данных, могут подключаться через выделенные модемы 4G/5G, в то время как сервисы баз данных и кэша Redis остаются полностью локальными.

Файл docker-compose.yml с выборочной маршрутизацией через прокси
version: '3.8'

services:
  scraper-worker:
    image: my-scraper:latest
    environment:
      - HTTP_PROXY=http://user123:secret456@proxy.pxm2.io:8000
      - HTTPS_PROXY=http://user123:secret456@proxy.pxm2.io:8000
      - NO_PROXY=localhost,127.0.0.1,postgres,redis
    depends_on:
      - postgres
      - redis

  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: scraper_data
      POSTGRES_PASSWORD: secretpassword

  redis:
    image: redis:7-alpine
Запросы Worker к «postgres» и «redis» обходят прокси с помощью параметра NO_PROXY

Прокси на уровне сети

Некоторые контейнерные инструменты не учитывают переменные среды или не поддерживают прокси в своём коде. В таких случаях маршрутизация на сетевом уровне или использование прокси-моделей типа «сайдкар» позволяют перенаправлять весь трафик контейнера без изменения исходного кода приложения.

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

Шаблон «контейнер сети Sidecar»
# Service sharing the sidecar proxy network
services:
  proxy-gateway:
    image: custom-redsocks-gateway
    cap_add:
      - NET_ADMIN
    environment:
      - PROXY_SERVER=proxy.pxm2.io
      - PROXY_PORT=1080

  legacy-app:
    image: my-app:latest
    network_mode: "service:proxy-gateway"
Устаревшее приложение унаследовало прозрачный SOCKS5-туннель от шлюза

Устранение неполадок с прокси Docker

Распространённые проблемы при настройке мобильных прокси в контейнерах Docker и способы их решения:

Проблема Основная причина Исправить
Превышение времени ожидания при подключении к базе данных В NO_PROXY отсутствуют имена служб контейнеров. Добавьте имена хостов баз данных (например, postgres, redis) в переменную среды NO_PROXY.
Ошибка при сборке Docker с кодом 407 В этапах сборки отсутствуют учетные данные прокси. Передайте аргумент --build-arg HTTP_PROXY во время сборки или воспользуйтесь функцией монтирования секретных данных BuildKit.
host.docker.internal недоступен Разрешение локального хоста перенаправлено на мобильный модем. Добавьте host.docker.internal в NO_PROXY.
Истечение времени ожидания при выполнении команды `docker pull` Отсутствует конфигурация прокси-демона. Настройте параметр HTTP_PROXY в файле systemd docker.service.d/http-proxy.conf и перезапустите демон.
🇬🇧

Великобритания

2 оператора 20-60 Mbps
Начиная с
$3.64 за 1 час
4G
Доступные операторы:
O2 EE
🇪🇸

Испания

2 оператора 30-80 Mbps
Начиная с
$4.35 за 1 час
5G
Доступные операторы:
Orange Vodafone
🇮🇳

Индия

2 оператора 20-30 Mbps
Начиная с
$2.74 за 1 час
4G
Доступные операторы:
Airtel Vodafone Idea (Vi)
Смотреть все локации →

Часто задаваемые вопросы

В чём заключается разница между прокси-демоном и контейнерным прокси?

Настройки прокси-сервера демона Docker (в systemd или в файле ~/.docker/config.json) определяют, как dockerd загружает образы из реестров, таких как Docker Hub. В свою очередь, переменные прокси-сервера контейнера (HTTP_PROXY и HTTPS_PROXY) определяют исходящий сетевой трафик, генерируемый приложениями, запущенными внутри экземпляров контейнеров.

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

Определите переменные среды в блоке service файла docker-compose.yml, указав значения для HTTP_PROXY, HTTPS_PROXY и NO_PROXY. Вы также можете использовать файл .env для централизованного управления настройками прокси-сервера и учетных данных для всех сервисов в проекте compose.

Почему контейнеры не могут подключаться к локальным базам данных, если установлен параметр HTTP_PROXY?

Если параметр NO_PROXY отсутствует или заполнен неполностью, запросы контейнера, адресованные localhost или именам в частной сети-мосту Docker, отправляются на мобильный прокси-сервер, который не может определить внутренние IP-адреса контейнеров. Всегда включайте в NO_PROXY адреса 127.0.0.1, localhost и подсети вашей внутренней сети.

Как передать прокси-сервер при сборке Docker без встраивания секретных данных в образы?

Передайте настройки прокси в качестве аргументов сборки: docker build --build-arg HTTP_PROXY="...". При использовании многоэтапной сборки аргументы сборки не сохраняются в слоях образа, что гарантирует, что пароли прокси не появятся в истории Docker.

Может ли Docker направлять весь трафик контейнеров через мобильный прокси SOCKS5?

Docker изначально не поддерживает системную маршрутизацию по протоколу SOCKS5 на уровне демона. Чтобы маршрутизировать весь трафик контейнеров через SOCKS5, используйте контейнер-сайдкар с запущенными программами redsocks или WireGuard либо настройте отдельные приложения внутри контейнеров на работу по протоколу SOCKS5.

Ознакомьтесь с руководствами по настройке сред разработки, скриптов автоматизации и конфигураций серверов.

Руководства для разработчиков и по автоматизации

Платформы и операционные системы

Масштабирование контейнерных рабочих нагрузок на реальном мобильном оборудовании

Интегрируйте специализированные мобильные модемы 4G/5G непосредственно в поды Docker и Kubernetes, предназначенные для сбора данных. Неограниченная пропускная способность и надежные показатели доверия операторов связи.

Получить мобильный прокси