[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`![](https://box.kancloud.cn/9ab5c309a4392f9589cb4278b69346d8_1118x809.png)
![](https://box.kancloud.cn/b01451ecf56d80ecc1341c0a82621a60_1118x467.png)
![](https://box.kancloud.cn/5fd3161cc2ea065b2d661d8f6548ba80_1125x297.png)
创建后,获得公网地址:*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
```
![](https://box.kancloud.cn/5a01038eb555c1bccd23c0d11cbbd77f_1119x382.png)
<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#
```
---
:-: ![](https://box.kancloud.cn/331f659e8e6cddb0d9f182e00e32803f_258x258.jpg)
<span style="color: #993366;"><em>***<span style="text-decoration: underline;"><span style="text-decoration: underline;">微信扫一扫,关注“python测试开发圈”,了解更多测试教程!!</span></span>***</em></span>