Nexus3 Частный реестр докеров, требуется аутентификация после успешного входа в систему - PullRequest
0 голосов
/ 09 июня 2019

Вопрос:

Я использовал свой требуемый для авторизации личный реестр Docker в качестве зеркала реестра Docker, но получаю ошибку аутентификации (у меня есть успешный вход в мой личный реестр).

Весь мой шаг ниже:

1.Успешный вход в мой личный реестр докеров nexus3

1) Когда я запускаю docker, тяну docker.mydomain.com/myPrivateDocker:latest без входа в систему, мне нужно войти в систему докера (myPrivateDocker создан мной).

2) И затем я вхожу в свой личный реестр докеров nexus3 https://docker.mydomain.com рис. Успешного входа в систему

3) Я использую docker pull docker.mydomain.com/myPrivateDocker: последний успех сейчас.

2.Когда я добавляю зеркала регистрации в докер, но не могу выполнить аутентификацию

1).Потому что каждый раз тянуть с docker.mydomain.com/myPrivateDocker:latest не очень хорошо. Поэтому я устанавливаю зеркала реестра docker на / etc / docker / daemon с

"registry-mirrors": ["https://docker.mydomain.com"],

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

Информация об успешном соединении с зеркалами реестра

2) Но когда я хочу использовать Docker pullmyPrivateDocker: последнее с ошибкой ниже:

$ docker pull myPrivateDocker:latest

Error response from daemon: Get https://registry-1.docker.io/v2/library/nginx/manifests/latest: unauthorized: incorrect username or password

Я вхожу в свой личный реестр успешно сейчас. Эта ошибка меня долго озадачивала. И я захожу, чтобы посмотреть мои журналы nginx и получить ошибку с помощью auth.Nginx logs можетопределенно, что мой запрос на извлечение является запросом к моей https://docker.domain.com.So настройке зеркала, теперь выполняется эффективно.

Но ошибка nginx с аутентификацией:

"GET /v2/token?scope=repository%3Alibrary%2Fnexus%3Apull&service=https%3A%2F%2Fdocker.mirrors.feibor.com%2Fv2%2Ftoken HTTP/1.1" 200 60 "-" "docker/18.09.2 go/go1.10.6 git-commit/6247962 kernel/4.9.125-linuxkit os/linux arch/amd64 UpstreamClient(Docker-Client/18.09.2 \x5C(darwin\x5C))"
1.203.182.115 - - [09/Jun/2019:14:08:15 +0800] 

"GET /v2/library/nexus/manifests/3.16.2-3 HTTP/1.1" 401 113 "-" "docker/18.09.2 go/go1.10.6 git-commit/6247962 kernel/4.9.125-linuxkit os/linux arch/amd64 UpstreamClient(Docker-Client/18.09.2 \x5C(darwin\x5C))"

Тогда яобнаружил, что в моем URL запроса нет имени учетной записи.Я когда-либо использую общедоступное зеркало докера без аутентификации и могу использовать очень хорошо. Но никогда не использую приватное зеркало реестра докера, что я могу с этим сделать?Я не хочу использовать очень длинное имя для извлечения моих изображений, например docker pull docker.mydomain.com/myPrivateDocker:latest.

Моя конфигурация nginx:

server{
  listen 443;
  server_name docker.mydomain.com;

  client_max_body_size 1G;
  proxy_buffering    off;
  keepalive_timeout  5 5;
  tcp_nodelay        on;

  ssl on;
  ssl_certificate /root/ssl_ca/docker.xxxx.com.pem;xx
  ssl_certificate_key /root/ssl_ca/docker.xxxx.com.key;
  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;

  location / {
        proxy_headers_hash_max_size 51200;
        proxy_headers_hash_bucket_size 6400;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header Host $host;
        proxy_pass http://localhost:7719;
   }

 location /v1/search {
    auth_basic off;
    proxy_pass http://localhost:7719;
 }
...