Локальный реестр Docker пытается отправить изображения в docker.io - PullRequest
1 голос
/ 19 сентября 2019

Я создал локальный реестр докеров.Шаги, которые я выполнил.Создание файлов сертификатов.

mkdir -p /etc/docker/certs.d/123.456.78.9:5000

cp domain.crt /etc/docker/certs.d/123.456.78.9:5000/ca.crt

cp domain.crt /usr/local/share/ca-certificates/ca.crt

update-ca-certificates

Установлен реестр Docker,как указано в официальном руководстве

docker run -d -p 5000:5000 --restart=always --name registry -v $PWD/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2

Вытягивание и нажатие изображений Docker:

docker pull ubuntu:16.04

docker tag ubuntu:16.04 mydocker_registry/my_ubuntu

docker push mydocker_registry/my-ubuntu

Мое приложение push-изображений пытается получить доступ к docker.io, поэтому ошибка очевидна.

The push refers to repository [docker.io/mydocker_registry/my_ubuntu]
03901b4a2ea8: Preparing  
denied: requested access to the resource is denied

Мой /etc/hosts файл выглядит следующим образом

123.456.78.9 mydocker_registry

Здесь я чувствую, что пропустил какой-то маленький шаг.Я не могу понять это.Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 19 сентября 2019

Попробуйте добавить реестр в качестве небезопасных реестров.

Если вы используете Linux, отредактируйте daemon.json в /etc/docker

Добавьте

{
  "insecure-registries" : ["registry-ip:registry-port"]
}

и запустите в терминале

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
1 голос
/ 19 сентября 2019

вам нужно добавить свой URL-адрес реестра в теге, если локальный URL-адрес реестра не является частью вашего тега изображения Docker, по умолчанию он будет перенаправлен в официальный реестр Docker.

Так вот почему вывы видите в журнале push-сообщений

The push refers to a repository [docker.io/mydocker_registry/my_ubuntu]

, поэтому все, что вы добавляете, чтобы добавить полный путь к вашему реестру Docker.

docker tag ubuntu:16.04 123.456.78.9:5000/mydocker_registry/my_ubuntu
docker push 123.456.78.9:5000/mydocker_registry/my_ubuntu 

Здесь 123.456.78.9 относится к вашему локальному реестру.если это localhost, просто 123.456.78.9 это с localhost

Вы можете проверить доступ к реестру в браузере, если он доступен, вы можете нажать.

https://myregistry.com/v2/_catalog
or 
http://localhost:5000/v2/_catalog
0 голосов
/ 20 сентября 2019

Хорошо, после нескольких дней чтения и попыток, я исправил свою проблему благодаря подсказкам / r / docker redditters : -)

Обратите внимание, что этоработает только для вашего локального домена

Создание файлов сертификатов для вашего домена.

Здесь мой домен registry.myregistry.com.

openssl req -newkey rsa:4096 -nodes -sha256 -keyout registry.myregistry.com.key -x509 -days 365 -out registry.myregistry.com.crt

mkdir -p /etc/docker/certs.d/registry.myregistry.com:443

Копировать файлы сертификатов в соответствующие места.

cp registry.myregistry.com.crt /etc/docker/certs.d/registry.myregistry.com:443/ca.crt

cp registry.myregistry.com /usr/local/share/ca-certificates/ca.crt

update-ca-certificates

Инициализация реестра Docker

docker run -d -p 443:443 --restart=always --name registry -v $PWD/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE = / certs / registry.myregistry.com.crt -e REGISTRY_HTTP_TLS_KEY = / certs / registry.myregistry.com.key реестра: 2`

Извлечение и отправка образов Docker в реестр

docker pull alpine:latest

docker tag alpine:latest registry.myregistry.com:443/myalpine

docker push registry.myregistry.com:443/myalpine

Нет ошибок, его успешное нажатие.

Для этого нужно принять запросы извлечения от других пользователей в той же сети.

...