Как изменить реестр Docker по умолчанию с docker.io на мой личный реестр?
По умолчанию, если я выдаю команду:
sudo docker pull ruby:2.2.1
он по умолчанию отключится от официального сайта docker.io.
Pulling repository docker.io/library/ruby
Как мне изменить его на мой личный реестр. Это означает, что если я выдаю
sudo docker pull ruby:2.2.1
он вытащит из моего собственного частного реестра, вывод будет примерно таким:
Pulling repository my_private.registry:port/library/ruby
Ответы
Ответ 1
UPDATE: после вашего комментария в настоящее время невозможно изменить реестр по умолчанию, см. эту проблему для получения дополнительной информации.
Вы должны сделать это, заменив хост и порт на свой собственный:
docker pull localhost:5000/registry-demo
Если сервер удален/имеет авторизацию, вам может потребоваться войти на сервер с помощью:
docker login https://<YOUR-DOMAIN>:8080
Затем выполняется:
docker pull <YOUR-DOMAIN>:8080/test-image
Ответ 2
Оказывается, это действительно возможно, но без использования подлинной версии Docker CE или EE.
Вы можете использовать Red Hat форк docker с флагом '--add-registry' или вы можете собрать docker из исходного кода, изменив Registry/config.go, используя свое собственное жестко заданное пространство имен/индекс реестра по умолчанию.
Ответ 3
если вы используете дистрибутив fedora, вы можете изменить файл
/etc/containers/registries.conf
Добавление домена docker.io
Ответ 4
Кажется, он не будет поддерживаться из-за фрагментации, которую он создавал бы в сообществе (т.е. два пользователя получат разные изображения, тянущие ubuntu:latest
). Вам просто нужно добавить хост перед именем изображения. Смотрите github issue, чтобы присоединиться к обсуждению.
(Обратите внимание, что это не предназначено как упрямый комментарий, а просто краткое изложение обсуждения, которое может быть выполнено в упомянутой проблеме github.)
Ответ 5
Раньше это могло быть достигнуто с помощью DOCKER_OPTS
в конфигурационном файле /etc/default/docker
, который работал на Ubuntu 14:04 и имел некоторые issues на Ubuntu 15:04. Не уверен, что это исправлено.
Следующая строка должна войти в файл /etc/default/docker
на хосте, который запускает демон докеров. Изменения указывают на частный реестр, установленный в вашей локальной сети. Примечание: вам потребуется перезапустить службу докеров, а затем с этим изменением.
DOCKER_OPTS="--insecure-registry <priv registry hostname/ip>:<port>"
Ответ 6
Я добавляю к первоначальному ответу Гая, который все еще действует сегодня (скоро 2020).
Переопределение стандартного реестра Docker, как вы это делаете с maven
, на самом деле не очень хорошая практика.
При использовании maven
вы извлекаете артефакты из Центрального репозитория Maven через локальную систему управления репозиторием, которая будет действовать как прокси. Эти артефакты - простые, сырые библиотеки (фляги), и маловероятно, что вы будете толкать фляги с тем же именем.
С другой стороны, образы докеров являются полностью работоспособными, работоспособными, средами, и имеет смысл извлечь образ из Docker Hub, изменить его и вставить этот образ в локальную систему управления реестром с тем же именем, поскольку он точно что говорит его название, просто в контексте вашего предприятия. В этом случае единственным различием между этими двумя изображениями будет именно их путь !!
Поэтому необходимо установить следующее правило: префикс изображения указывает на его происхождение; по умолчанию, если изображение не имеет префикса, оно извлекается из Docker Hub.
Ответ 7
Не пробовал, но, возможно, угонял процесс разрешения DNS, добавив строку в /etc/hosts
для hub.docker.com
или что-то подобное (docker.io
?), Может сработать?