Docker Hub заблокирован в рф
Docker Hub покинул Россию
30 мая 2024 года Docker Hub https://hub.docker.com окончательно ушёл из РФ, заблокировав запросы с Ip адресов РФ. Многие российские разработчики и администраторы использовали docker hub для скачивания и хранения контейнеров, и блокировка доступа привела к невозможности сборки многих сайтов и приложений.
Поправка: на данный момент docker hub разблокировал запросы из РФ, но всё может измениться в любой момент.
Решение
Ситуацию можно исправить, переключившись на стороннее кеширующее зеркало. Из соображений безопасности, мы рекомендуем использовать зеркало, принадлежащее Google: https://mirror.gcr.io
Google объявили что в 2025 году планируют закрыть это зеркало, но к тому времени вероятно Yandex или Sber поднимут свои зеркала, и можно будет переключиться на них.
Настроить работу через зеркало
- Подключитесь к вашему Linux серверу от администратора root
- Пропишите в файл
/etc/docker/daemon.json
адрес прокси сервера в формате json:
{
"registry-mirrors": ["https://mirror.gcr.io"]
}
- Перезапустите демона докер, для большинства систем подойдёт команда для systemd:
systemd
sudo systemctl restart docker --no-block
openrc
sudo rc-service docker restart
init
sudo service docker restart
Если сервис не стартует по какой-либо причине, то следует проверить логи запуска, обычно это можно сделать в файле: /var/log/syslog
- Проверьте что используется зеркало:
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