简介
目前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 错误。