倉庫(Repository)是集中存放鏡像的地方,倉庫分爲公開倉庫和私有倉庫兩種形式。
最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。
Docker Hub:https://hub.docker.com/
在國內,阿里雲和163也有提供公開倉庫,用戶也可以在本地網絡內創建一個私有倉庫。當用戶創建了自己的鏡像之後就可以使用push命令將它上傳到公有或私有倉庫,這樣其他人只需要從倉庫上pull下來就可以了。
阿里雲倉庫介紹
前面在介紹鏡像時,提到過阿里雲鏡像加速器,阿里雲同時也提供docker倉庫,下面是阿里雲容器鏡像服務的介紹
容器鏡像服務(Container Registry)提供安全的應用鏡像託管能力,精確的鏡像安全掃描功能,穩定的國內外鏡像構建服務,便捷的鏡像授權功能,方便用戶進行鏡像全生命週期管理。容器鏡像服務簡化了Registry的搭建運維工作,支持多地域的鏡像託管,並聯合容器服務等雲產品,打造雲上使用Docker的一體化體驗。
這意味着,我們可以將自己的鏡像發佈到阿里雲中。
案例:推送redis鏡像到阿里雲
- 在阿里雲上創建鏡像倉庫
我這裏先創建了一個命名空間爲mt-gfc
,然後再這個命名空間下創建鏡像倉庫myredis
創建後,獲得公網地址:registry.cn-hangzhou.aliyuncs.com/mt-gfc/myredis,點擊“管理”可以進入倉庫管理頁。
後面步驟中的打tag,push推送都要用到這個倉庫地址。
- 登錄阿里雲Docker Registry
root@ubuntu:/home/hui# docker login --username=[您當前阿里雲用戶名] registry.cn-hangzhou.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
登錄成功後,會提示“Login Succeeded”
3. 給鏡像打TAG
這裏我將本地鏡像redis:5.0 打成阿里雲TAG 9.9
root@ubuntu:/home/hui# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 5.0 415381a6cb81 6 days ago 94.9MB
rabbitmq latest e8261c2af9fe 2 weeks ago 125MB
hello-world latest 4ab4c602aa5e 2 months ago 1.84kB
root@ubuntu:/home/hui# docker tag redis:5.0 registry.cn-hangzhou.aliyuncs.com/mt-gfc/myredis:9.9
root@ubuntu:/home/hui# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 5.0 415381a6cb81 6 days ago 94.9MB
registry.cn-hangzhou.aliyuncs.com/mt-gfc/myredis 9.9 415381a6cb81 6 days ago 94.9MB
rabbitmq latest e8261c2af9fe 2 weeks ago 125MB
hello-world latest 4ab4c602aa5e 2 months ago 1.84kB
tag打包完成後,可以看到本地鏡像中新增了registry.cn-hangzhou.aliyuncs.com/mt-gfc/myredis:9.9
4. 將鏡像推送到Registry
root@ubuntu:/home/hui# docker push registry.cn-hangzhou.aliyuncs.com/mt-gfc/myredis:9.9
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/mt-gfc/myredis]
3adc2ce40893: Pushed
b05611c60854: Pushed
3eefbad2dc28: Pushed
aa1a19279a9a: Pushed
197ffb073b01: Pushed
237472299760: Pushed
9.9: digest: sha256:93ce9120377effb33fc8ab25cc5fb6ab736982aa4524adb89324c031e47b33ac size: 1572
到這裏,我們已經成功將本地鏡像上傳到了阿里雲倉庫,假設我們在其他機器上,我們可以方便的將這個鏡像下載下來
root@ubuntu:/home/hui# docker pull registry.cn-hangzhou.aliyuncs.com/mt-gfc/myredis:9.9
9.9: Pulling from mt-gfc/myredis
Digest: sha256:93ce9120377effb33fc8ab25cc5fb6ab736982aa4524adb89324c031e47b33ac
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/mt-gfc/myredis:9.9