仓库(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