Docker Hub заблокирован в рф

31 мая 2024
1301
docker
Docker
google
Kubernetes
vds
новости
Разработка

Docker Hub покинул Россию

30 мая 2024 года Docker Hub https://hub.docker.com окончательно ушёл из РФ, заблокировав запросы с Ip адресов РФ. Многие российские разработчики и администраторы использовали docker hub для скачивания и хранения контейнеров, и блокировка доступа привела к невозможности сборки многих сайтов и приложений.

Поправка: на данный момент docker hub разблокировал запросы из РФ, но всё может измениться в любой момент.

Решение

Ситуацию можно исправить, переключившись на стороннее кеширующее зеркало. Из соображений безопасности, мы рекомендуем использовать зеркало, принадлежащее Google: https://mirror.gcr.io

Google объявили что в 2025 году планируют закрыть это зеркало, но к тому времени вероятно Yandex или Sber поднимут свои зеркала, и можно будет переключиться на них.

Настроить работу через зеркало

  1. Подключитесь к вашему Linux серверу от администратора root
  2. Пропишите в файл /etc/docker/daemon.json адрес прокси сервера в формате json:
{
  "registry-mirrors": ["https://mirror.gcr.io"]
}
  1. Перезапустите демона докер, для большинства систем подойдёт команда для systemd:

systemd

sudo systemctl restart docker --no-block

openrc

sudo rc-service docker restart

init

sudo service docker restart

Если сервис не стартует по какой-либо причине, то следует проверить логи запуска, обычно это можно сделать в файле: /var/log/syslog

  1. Проверьте что используется зеркало:
sudo docker system info

В выводе команды должен появится блок:

Registry Mirrors:
 https://mirror.gcr.io

Теперь Вы сможете продолжить пользоваться командами вроде docker pull как обычно.

Другие методы работы с контейнерами

Docker Compose

Если используется docker compose, или docker-compose то достаточно поменять адрес зеркала в /etc/docker/daemon.json по инструкции выше, в самом docker-compose.yml ничего менять не требуется.

Containerd

Если используется containerd (например в составе Kubernetes), то по-умолчанию консольная утилита ctr ищет образы только локально, для скачивания образа из репозитория можно просто указать адрес репозитория, по примеру ниже:

sudo ctr images pull mirror.gcr.io/alpine:latest

Self-Hosted Registry

Также, взамен hub.docker.com можно использовать своё частный self-hosted реестр для хранения и скачивания образов контейнеров.

Для небольших команд разработчиков с несколькими десятками контейнеров подойдёт open source реестр: Docker Registry (Distribution Registry)

Для больших команд разработчиков, с большими требованиями и большим числом контейнеров может подойти : JFrog Container Registry

Как настроить работу демона докер с приватным реестром, описано в документации: Docker Docs

Рекомендуемые статьи:

Мы используем файлы cookie для предоставления наших услуг, а также для аналитики и маркетинга. Продолжая просматривать наш веб-сайт, вы соглашаетесь на использование нами файлов cookie.
ОК