Résolution du nom d’hôte Artifactory sur le registre Docker

J’essaye de pousser une image de docker dans un repo de docker nouvellement créé dans Artifactory. Pour cela je taggue l’image comme suit,

docker tag ubuntu mNginxLb.mycompany.com/artifactory/api/docker/ 

puis appuyez sur l’image mais obtenez l’erreur suivante

 docker push mNginxLb.mycompany.com/artifactory/api/docker//ubuntu The push refers to a repository [mNginxLb.mycompany.com/artifactory/api/docker//ubuntu] (len: 1) unable to ping registry endpoint https://mNginxLb.mycompany.com/v0/ v2 ping attempt failed with error: Get https://mNginxLb.mycompany.com/v2/: x509: certificatee signed by unknown authority v1 ping attempt failed with error: Get https://mNginxLb.mycompany.com/v1/_ping: x509: certificatee signed by unknown authority 

Est-ce un problème avec l’autorité de signature de certificate ou avec la résolution de nom d’hôte? J’ai vérifié si d’autres référentiels fonctionnaient bien avec le certificate SSL. Je ne suis donc pas sûr que le problème concerne les certificates. Voici mon nginx conf:

 upstream artifactory_lb { server mNginxLb.mycompany.com:8081; server mNginxLb.mycompany.com backup; } log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time'; server { listen 80; listen 443 ssl; ssl_certificatee /etc/nginx/ssl/my-certs/myCert.pem; ssl_certificatee_key /etc/nginx/ssl/my-certs/myserver.key; client_max_body_size 2048M; location / { proxy_set_header Host $host:$server_port; proxy_pass http://artifactory_lb; proxy_read_timeout 90; } access_log /var/log/nginx/access.log upstreamlog; location /basic_status { stub_status on; allow all; } } # Server configuration server { listen 2222 ssl; server_name mNginxLb.mycompany.com; if ($http_x_forwarded_proto = '') { set $http_x_forwarded_proto $scheme; } rewrite ^/(v1|v2)/(.*) /api/docker/my_local_repo_key/$1/$2; client_max_body_size 0; chunked_transfer_encoding on; location / { proxy_read_timeout 900; proxy_pass_header Server; proxy_cookie_path ~*^/.* /; proxy_pass http://artifactory_lb; proxy_set_header X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 

METTRE À JOUR:

Après avoir mis à jour le certificate à un par CA, cette erreur disparaît, bien que je ne puisse toujours pas pousser les images et obtenir une erreur 403 interdite. La commande que j’utilise est

  docker push host:port/The push refers to a repository [host:port/image_name] (len: 1) Sending image list Error: Status 403 trying to push repository ubuntu: "Apache Tomcat/8.0.22 - Error reportH1 {f ont-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#5 25D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;c olor:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;backgro und:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}.line {height: 1px; background-color: #525D76; border: none;} 

HTTP Status 403 -

type Status report

message

description Access to the speci fied resource has been forbidden.


Apache Tomcat/8.0.22

"image_name

Le client docker donne l’erreur suivante Alors que les journaux d’artefacts affichent les éléments suivants

 "GET /v2/ HTTP/1.1" 404 466 "-" "docker/1.9.1 go/go1.4.2 git-commit/a34a1d5 kernel/3.13.0-24-generic os/linux arch/amd64" 172.28.144.202 - - [22/Dec/2015:11:06:00 -0500] "GET /v2/ HTTP/1.1" 404 466 "-" "docker/1.9.1 go/go1.4.2 git-commit/a34a1d5 kernel/3.13.0-24-generic os/linux arch/amd64" "GET /v1/_ping HTTP/1.1" 404 470 "-" "docker/1.9.1 go/go1.4.2 git-commit/a34a1d5 kernel/3.13.0-24-generic ] "PUT /v1/repositories/ubuntu/ HTTP/1.1" 403 449 "-" "docker/1.9.1 go/go1.4.2 git-commit/a34a1d5 kernel/3.13.0-24-generic os/linux arch/amd64" 

Docker traite tout après le nom d’hôte comme nom de référentiel (avec éventuellement un espace de noms) et la balise. Cela signifie que vous devez utiliser le port que vous avez atsortingbué (2222) avec le nom d’hôte uniquement. Le chemin de contexte va être le nom du référentiel.

Dans votre cas, cela devrait être:

docker tag ubuntu mNginxLb.mycompany.com:2222/ubuntu

docker push mNginxLb.mycompany.com:2222/ubuntu

Notez que la latest balise est implicite. Un autre exemple pourrait être:

docker tag ubuntu:15.10 mNginxLb.mycompany.com:2222/ubuntu:15.10

Le problème était que j’avais configuré des artefacts avec l’API Docker V1 mais essayais de pousser une image qui supportait l’API v2