簡介
目前Docker鏡像倉庫有多種形式,從最簡單的本地直接拉取repository鏡像使用,到企業級的Harbor,但私人鏡像的話需要滿足雲端+私有,如果你恰好沒有個人服務器或不想浪費資源搭建倉庫那麼阿里雲提供的免費容器鏡像服務是個不錯的選擇,下面簡單介紹基於本地推送
一、如何註冊
首先得有阿里雲賬號(可以是支付寶,淘寶賬號)
1.打開阿里雲鏡像倉庫地址 cr.console.aliyun.com
創建個人版實例(個人實例限制3個namespace和300個倉庫)
2.創建命名空間
3.創建一個倉庫
可選擇私有或者公開,代碼源選本地倉庫模式
點擊倉庫進入基本信息頁 就可以看到命令提示了
二、使用鏡像服務
1.設置訪問憑證
2.docker登錄
Password 輸入上一步 設置的訪問憑證固定密碼
[root@k8s-node04 ~]# docker login --username=你的用戶名@xxx.com registry.cn-heyuan.aliyuncs.com
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
3.本地的鏡像推送到阿里雲個人私倉
- 修改本地鏡像tag
- push到私有倉庫
$ docker tag [ImageId] registry.cn-heyuan.aliyuncs.com/flyr/[鏡像名]:[鏡像版本號]
$ docker push registry.cn-heyuan.aliyuncs.com/flyr/[鏡像名]:[鏡像版本號]
可以先從docker hub官方拉取鏡像 這裏用nginx示例
[root@k8s-node04 ~]# docker tag nginx registry.cn-heyuan.aliyuncs.com/flyr/nginx:v1.0
[root@k8s-node04 ~]# docker push registry.cn-heyuan.aliyuncs.com/flyr/nginx:v1.0
The push refers to repository [registry.cn-heyuan.aliyuncs.com/flyr/nginx]
d874fd2bc83b: Layer already exists
32ce5f6a5106: Layer already exists
f1db227348d0: Layer already exists
b8d6e692a25e: Layer already exists
e379e8aedd4d: Layer already exists
2edcec3590a4: Layer already exists
v1.0: digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3 size: 1570
4.從私倉拉取鏡像
docker pull registry.cn-heyuan.aliyuncs.com/flyr/[鏡像名]:[鏡像版本號]
三、一些說明
1.關於在阿里雲控制檯創建的[倉庫]和自己推送的倉庫
如果本地鏡像推送可以直接在 【命名空間】後面加斜槓鏡像名稱 registry.cn-heyuan.aliyuncs.com/flyr/[這裏寫鏡像名稱]:[版本號]
,不需要到頁面控制檯創建倉庫,一開始我誤解了【倉庫】的概念,導致寫成了 命名空間/頁面創建倉庫/我的鏡像名 例如 registry.cn-heyuan.aliyuncs.com/flyr/demo/mynginx
這就會導致denied: requested access to the resource is denied 錯誤。