[TOC]
## 倉庫介紹
倉庫(Repository)是集中存放鏡像的地方,倉庫分為公開倉庫和私有倉庫兩種形式。
最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。
Docker Hub:https://hub.docker.com/
在國內,阿里云和163也有提供公開倉庫,用戶也可以在本地網絡內創建一個私有倉庫。當用戶創建了自己的鏡像之后就可以使用push命令將它上傳到公有或私有倉庫,這樣其他人只需要從倉庫上pull下來就可以了。
<br>
### 阿里云倉庫介紹
前面在介紹鏡像時,提到過阿里云**鏡像加速器**,阿里云同時也提供**docker倉庫**,下面是阿里云容器鏡像服務的介紹
>[info]容器鏡像服務(Container Registry)提供安全的應用鏡像托管能力,精確的鏡像安全掃描功能,穩定的國內外鏡像構建服務,便捷的鏡像授權功能,方便用戶進行鏡像全生命周期管理。容器鏡像服務簡化了Registry的搭建運維工作,支持多地域的鏡像托管,并聯合容器服務等云產品,打造云上使用Docker的一體化體驗。
這意味著,我們可以將自己的鏡像發布到阿里云中。
<br>
### 案例:推送redis鏡像到阿里云
1. 在阿里云上創建鏡像倉庫
我這里先創建了一個命名空間為`mt-gfc`,然后再這個命名空間下創建鏡像倉庫`myredis`


創建后,獲得公網地址:*registry.cn-hangzhou.aliyuncs.com/mt-gfc/myredis*,點擊“管理”可以進入倉庫管理頁。
>[warning] 后面步驟中的打tag,push推送都要用到這個倉庫地址。
2. 登錄阿里云Docker Registry
```
root@ubuntu:/home/guanfuchang# 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/guanfuchang# 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/guanfuchang# docker tag redis:5.0 registry.cn-hangzhou.aliyuncs.com/mt-gfc/myredis:9.9
root@ubuntu:/home/guanfuchang#
root@ubuntu:/home/guanfuchang# 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/guanfuchang# 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
```

<br>
到這里,我們已經成功將本地鏡像上傳到了阿里云倉庫,假設我們在其他機器上,我們可以方便的將這個鏡像下載下來
```
root@ubuntu:/home/guanfuchang# 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
root@ubuntu:/home/guanfuchang#
```
---
:-: 
<span style="color: #993366;"><em>***<span style="text-decoration: underline;"><span style="text-decoration: underline;">微信掃一掃,關注“python測試開發圈”,了解更多測試教程!!</span></span>***</em></span>