Сегодня утром многие были удивлены новостью о том, что Docker заблокировал свой главный репозиторий Docker Hub для ряда стран, включая и Россию. Новость, конечно, неприятная, но вполне ожидаемая. Давайте разберёмся, как это исправить.
Docker Hub – это основной источник образов. При сборке контейнера, Docker в первую очередь обращается туда, однако, путь туда нам закрыт. Но Docker не ограничивается только основным репозиторием. Docker позволяет делать собственные репозитории. Помимо этого, есть и сторонние «зеркала». Ими мы и воспользуемся.
В данный момент под запрет попадают пользователи из России использующие Docker Desktop, но, вероятно, позже будет затронут и Docker Engine, работающий на VPS и серверах.
Решение проблемы для Docker Desktop
Для решения проблемы необходимо прописать дополнительные зеркала в конфигурационный файл.
Откройте приложение Docker Desktop и перейдите в настройки. В нём выбираем Docker Engine.
В окне будет редактор с предзаписанной конфигурацией в виде JSON. Необходимо добавить новый ключ со списком зеркал:
"registry-mirrors": [
"https://mirror.gcr.io",
"https://daocloud.io",
"https://c.163.com",
"https://registry.docker-cn.com"
]
Мой конфиг выглядит так:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://mirror.gcr.io",
"https://daocloud.io",
"https://c.163.com",
"https://registry.docker-cn.com"
]
}
После чего нажимаем кнопку Apply & restart. После перезагрузки всё будет работать.
Решение проблемы на VPS
В данный момент на VPS Docker работает без проблем, однако подготовиться не помешает.
Файл конфигурации Docker находится по пути: /etc/docker/daemon.json
, но его там может и не быть.
Откроем файл, выполнив команду sudo nano /etc/docker/daemon.json
.Если у вас открылся пустой редактор, значит файла у вас не было и после сохранения, он появится.
Точно так же как и в предыдущем пункте, необходимо в JSON добавить ключ со списком. Если у вас, как у меня, файла не было, то вставляем следующее:
{
"registry-mirrors": [
"https://mirror.gcr.io",
"https://daocloud.io",
"https://c.163.com",
"https://registry.docker-cn.com"
]
}
Если у вас файл конфигурации был, то добавьте новый блок.
Сохраняем файл сочетанием клавиш CTRL+S
и закрываем CTRL+X
.
После этого необходимо перезапустить службу Docker, выполнив следующую команду: sudo systemctl restart docker
.
Заключение
Получать такие новости очень неприятно. Одно дело, когда уходят (блокируют) какие-то их местные компании, которыми у нас никто не пользовался. Совсем по другому ощущается блокировка инструмента, которым пользуешься буквально каждый день.
Комментарии
Уже есть готовое решение
https://github.com/StasPlov/docker-unlock
спасибо😊
Привет. У меня только сегодня 31 марта 2025 Docker разлогинился, и при попытке залогиниться перекидывает на страницу docker.com, которая только сегодня стала недоступна. Посоветуйте как исправить? Вижу что Ваше сообщение от 21 мая 2024 года, может что то изменилось? (я новичок, только первые шаги)