2016-07-07 117 views

回答

0

嘗試設置這在您的碼頭工人的conf文件~/.docker/config.json

{ 
     "auths": { 
       "https://localhost:5000/someimage": { 
         "auth": "username", 
         "email": "password" 
       } 
     } 
} 
9

該解決方案爲我工作: 首先我創建了一個文件夾,從註冊表中,我想工作:

$ mkdir registry 
$ cd registry/ 

現在我創建我的文件夾,我將存儲我的憑據

$ mkdir auth 

現在我將在Docker容器的幫助下創建一個htpasswd文件。 這個htpasswd文件將包含我的憑證和我的加密密碼。

$ docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > auth/htpasswd 

要驗證

$ cat auth/htpasswd 
myuser:$2y$05$8IpPEG94/u.gX4Hn9zDU3.6vru2rHJSehPEZfD1yyxHu.ABc2QhSa 

憑證的罰款。現在我必須將我的憑據添加到我的註冊表中。這裏我將掛載我的容器內我的身份驗證目錄:

docker run -d -p 5000:5000 --restart=always --name registry_private -v `pwd`/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry:2 

TEST:

$ docker push localhost:5000/busybox 
The push refers to a repository [localhost:5000/busybox] 
8ac8bfaff55a: Image push failed 
unauthorized: authentication required 

認證

$ docker login localhost:5000 
Username(): myuser 
Password: 
Login Succeeded 

重試推

$ docker push localhost:5000/busybox 
The push refers to a repository [localhost:5000/busybox] 
8ac8bfaff55a: Pushed 
latest: digest: sha256:1359608115b94599e5641638bac5aef1ddfaa79bb96057ebf41ebc8d33acf8a7 size: 527 

證書保存在〜/ .docker /配置以.json:

cat ~/.docker/config.json 

{ 
    "auths": { 
     "localhost:5000": { 
      "auth": "bXl1c2VyOm15cGFzc3dvcmQ=" 
     } 
    } 
+0

獲取'從後臺程序錯誤響應:GET https://10.10.10.50:5000/v1/users/:HTTP:服務器上的搬運工登錄了HTTP響應HTTPS client' :( – loostro

+0

@loostro你使用的是什麼碼頭版本?也許這有助於:http://stackoverflow.com/questions/38695515/can-not-pull-push-images-after-update-docker-to-1-12 – lvthillo

+0

工程就像一個魅力! – Camel