Docker Hub из России: pull образов после блокировки в 2026
Я как разработчик на удаленке впервые столкнулся с этим в феврале 2026 — сборка падает на docker pull, терминал висит минут пять, потом ошибка connection timeout. Docker Hub перестал отвечать у провайдеров МТС и Билайн. Пришлось разбираться, как вытаскивать образы без танцев с бубном. Делюсь, что сработало лично у меня.
Почему Docker Hub тормозит и что изменилось с 2026
В начале 2026 года Роскомнадзор внес Docker Hub в реестр запрещенных ресурсов. Формально — из-за отказа локализовать данные пользователей из РФ. На деле — любой docker pull от провайдера вроде Мегафона или Ростелекома уходит в никуда. IP-адреса registry-1.docker.io и auth.docker.io заблокированы на уровне DNS и DPI.
Я проверил на трех разных машинах: на сервере с Билайном docker pull nginx просто зависает на 120 секунд и выдает net/http: TLS handshake timeout. На Ростелекоме — та же история. Единственный способ — докручивать запросы через альтернативный маршрут. Без этого нормальная работа с контейнерами невозможна, особенно когда нужно быстро поднять окружение для клиента из США или Европы.
Как я настроил pull образов через прокси — пошагово для новичка
Я предполагаю, что Docker у тебя уже установлен. Если нет — команда sudo apt install docker.io для Ubuntu 22.04 или brew install docker для macOS. Проверить: docker --version должен показать версию хотя бы 24.x.
Самый простой способ — настроить Docker демон на использование прокси. Я использую VLESS Reality — трафик выглядит как обычный HTTPS, провайдер не видит, что это Docker Hub. Схема работает на любом Linux, macOS и даже на Windows в WSL2.
Шаг 1: Запускаешь в терминале создание конфига для демона:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/proxy.conf
Шаг 2: Вставляешь туда:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:10809"
Environment="HTTPS_PROXY=http://127.0.0.1:10809"
Environment="NO_PROXY=localhost,127.0.0.1"
Порт 10809 — это стандартный порт для SOCKS+HTTP прокси от v2rayNG или другого клиента. У тебя он может отличаться. Проверь в настройках своего VPN-клиента — обычно он показывает «Local Proxy Port».
Шаг 3: Перезагружаешь демон и проверяешь:
sudo systemctl daemon-reload
sudo systemctl restart docker
docker pull nginx:latest
У меня образ nginx потянулся за 12 секунд — с Билайном в Москве. Без прокси — зависание на 2 минуты и ошибка. Разница очевидная.
Шаг 4: Если хочешь использовать Docker Compose — то же самое, просто добавь переменные окружения в файл .env:
HTTP_PROXY=http://127.0.0.1:10809
HTTPS_PROXY=http://127.0.0.1:10809
Или передавай прямо в docker-compose up -e HTTP_PROXY=.... Работает для всех сервисов внутри.
Подводные камни при работе с прокси для Docker
Первая проблема — сертификаты. Docker Hub проверяет TLS-сертификат, и если твой прокси подменяет трафик (как некоторые корпоративные решения), образы не зальются. VLESS Reality этого не делает — он просто перенаправляет пакеты. Убедись, что твой клиент работает в режиме прозрачного прокси, не MITM.
Вторая — скорость. Через прокси образы качаются медленнее. Я замерил: образ python:3.12 (350 MB) через прямой доступ без блокировок — 45 секунд. Через VLESS Reality — 1 минута 20 секунд. Разница есть, но не критичная для работы. Если образ тяжелый (например, pytorch на 3 GB), запасись терпением — может уйти до 10-15 минут.
Третья — кэш слоев. Docker кэширует образы локально. Если ты уже тянул образ до блокировки — он лежит в /var/lib/docker/overlay2. Проблема только с новыми образами или обновлениями тегов. Мой совет: не обновляй образы на каждый чих, используй docker pull только когда реально нужна свежая версия.
Четвертая — DNS. Иногда провайдер подменяет DNS-запросы к docker.io. Пропиши в /etc/docker/daemon.json:
{
"dns": ["8.8.8.8", "1.1.1.1"]
}
Потом sudo systemctl restart docker. Это обходит DNS-блокировку, но DPI все равно режет трафик — так что прокси все равно нужен.
Что получилось после настройки — конкретные цифры
Я протестировал на провайдерах МТС, Билайн и Мегафон в Москве и Московской области. Исходные условия: Ubuntu 22.04, Docker 25.0.3, v2rayNG с VLESS Reality.
Без прокси:
- docker pull nginx:latest — таймаут через 120 секунд, ошибка
net/http: TLS handshake timeout. - docker pull alpine:latest — зависание на 90 секунд, ошибка
context deadline exceeded. - docker build с
FROM node:20— падение на первом же шаге.
С прокси (VLESS Reality):
- docker pull nginx:latest — успех за 12 секунд.
- docker pull python:3.12 — успех за 80 секунд.
- docker build проекта на Node.js с 10 образами в compose — полностью собрался за 4.5 минуты.
Статус на всех провайдерах: 100% работоспособность. Единственное — на Мегафоне скорость pull была на 15% ниже, чем на МТС, но образы все равно заливались без ошибок.
Альтернативы, которые я пробовал — честное сравнение
1. GitHub Container Registry (ghcr.io)
GitHub не блокирован в России на начало 2026. Команда docker pull ghcr.io/username/image:latest работает напрямую через Билайн. Но многие образы из Docker Hub там отсутствуют — нужно либо самому билдить и пушить, либо искать форки. Я перегнал несколько своих образов, но это заняло время.
2. Яндекс.Контейнеры
Яндекс предоставляет registry в рамках облака. docker pull cr.yandex/... — тянется без прокси. Минус: нужно регистрироваться в Яндекс.Облаке, привязывать карту. Плюс — бесплатный лимит 5 GB. Для небольших проектов хватает, но для CI/CD с частыми сборками — неудобно.
3. Прямые зеркала Docker Hub
Есть сторонние зеркала вроде mirror.gcr.io или docker.mirror.somewhere. Я пробовал — работают нестабильно. На Ростелекоме одно зеркало отвалилось через 2 дня. Плюс — безопасность: ты не знаешь, кто поддерживает зеркало и не подменили ли образы.
Итог: самый надежный вариант — свой прокси через VLESS Reality. Зеркала и альтернативные registry — подходят как запасной план, но не как основной.
Частые вопросы
Docker hub заблокирован россия 2026 — что делать, если нет времени на настройку? Можешь использовать ghcr.io для образов, которые там есть. Если нужен конкретный образ с Docker Hub — настрой прокси по инструкции выше. Это занимает 5 минут.
Docker pull россия — какой прокси лучше для Docker? Я использую VLESS Reality — трафик неотличим от HTTPS, провайдер не режет. Другие протоколы типа Shadowsocks или OpenVPN могут детектиться DPI. Настройка через v2rayNG с локальным портом 10809 — стандарт.
Можно ли работать без прокси на WSL2 в Windows 11?
WSL2 наследует прокси из Windows, если настроить системные переменные. Но Docker внутри WSL2 все равно обращается к Docker Hub — так что прокси нужен и там. Пропиши HTTP_PROXY и HTTPS_PROXY в .bashrc или в конфиге демона, как я описал выше.
Как проверить, работает ли прокси для Docker?
Выполни docker pull alpine:latest. Если через 10-15 секунд образ скачался — все ок. Если таймаут — проверь, что прокси-клиент запущен и порты совпадают. Также глянь docker info | grep -i proxy — должны быть твои настройки.
Есть ли бесплатный тест для Docker через ваш сервис? Да, даю 3 дня бесплатного доступа к прокси. Этого хватает, чтобы протестировать pull образов на своем провайдере. Для работы на постоянке тариф от 105 рублей в месяц.
В итоге: блокировка Docker Hub — не приговор, а просто дополнительный шаг в настройке. Я потратил 15 минут на конфиг и забыл о проблеме. Если лень возиться — просто прокидываешь трафик через рабочий прокси и дальше работаешь как раньше. Подключить @VPNChill_bot для работы →