Подтвердить что ты не робот

Как изменить реестр 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
4b9b3361

Ответ 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?), Может сработать?