本地镜像发布到阿里云/私有库

本地镜像发布到阿里云/私有库

一、本地镜像发布到阿里云流程

二、镜像的生成方法

基于当前容器创建一个新的镜像,新功能增强

docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]]

OPTIONS说明:
-a :提交的镜像作者;
-m :提交时的说明文字;

三、将本地镜像推送到阿里云

1、阿里云开发者平台

https://promotion.aliyun.com/ntms/act/kubernetes.html

2、创建仓库镜像

1)选择控制台,进入容器镜像服务
2)选择个人实例
3)命名空间
4)仓库名称
5)进入管理界面获得脚本

(1)登录阿里云Docker Registry

docker login --username=zhuangpf registry.cn-hangzhou.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。
(2)从Registry中拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/docrepo/testrepo:[镜像版本号]

(3)将镜像推送到Registry

docker login --username=zhuangpf registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/docrepo/testrepo:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/docrepo/testrepo:[镜像版本号]

3、将镜像推送到阿里云

将镜像推送到阿里云registry

docker login --username=zhuangpf registry.cn-hangzhou.aliyuncs.com
docker tag fc1d6e70130d registry.cn-hangzhou.aliyuncs.com/docrepo/testrepo:1.0
docker push registry.cn-hangzhou.aliyuncs.com/docrepo/testrepo:1.0

四、将阿里云上的镜像下载到本地

docker pull registry.cn-hangzhou.aliyuncs.com/docrepo/testrepo:1.0

五、本地镜像发布到私有库流程

六、Docker Registry

官方Docker Hub地址:https://hub.docker.com/,中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流。

Dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公网,所以需要创建一个本地私人仓库供给团队使用,基于公司内部项目构建镜像。

Docker Registry是官方提供的工具,可以用于构建私有镜像仓库。

七、将本地镜像推送到私有库

1、下载镜像Docker Registry

docker pull registry 

[root@docker130 ~]# docker images
REPOSITORY                                           TAG       IMAGE ID       CREATED             SIZE
registry                                             latest    b8604a3fe854   13 months ago       26.2MB

2、运行私有库Registry,相当于本地有个私有Docker hub

docker run -d -p 5000:5000  -v /deploy/registry/:/tmp/registry --privileged=true registry

默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调。

3、演示创建一个新镜像,ubuntu安装ifconfig命令

1)从Hub上下载ubuntu镜像到本地并成功运行
2)原始的Ubuntu镜像是不带着ifconfig命令的
3)外网连通的情况下,安装ifconfig命令并测试通过
docker容器内执行上述两条命令:

apt-get update
apt-get install net-tools

4)安装完成后,commit我们自己的新镜像

docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
docker commit -m="ifconfig add" -a="zhuangpf" 521b8ebff713 myubuntu1:1.1

5)启动我们的新镜像并和原来的对比

4、curl验证私服库上有什么镜像

curl -XGET http://192.168.10.130:5000/v2/_catalog
[root@docker130 ~]# curl -XGET http://192.168.10.130:5000/v2/_catalog
{"repositories":[]}

5、将新镜像修改符合私服规范的Tag

docker tag 镜像:Tag Host:Port/Repository:Tag

docker tag myubuntu1:1.1 192.168.10.130:5000/zzyyubuntu:1.2

6、修改配置文件使之支持http

[root@docker130 ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://5k5eio3g.mirror.aliyuncs.com"]
}

修改:

{
  "registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.10.130:5000"]
}

上述理由:docker默认不允许http方式推送镜像,通过配置选项来取消这个限制。====> 修改完后如果不生效,建议重启docker。

7、push推送到私服库

[root@docker130 ~]# docker push 192.168.10.130:5000/zzyyubuntu:1.2
The push refers to repository [192.168.10.130:5000/zzyyubuntu]
a359528d6d8c: Pushed 
9f54eef41275: Pushed 
1.2: digest: sha256:8ffa7b6dc6584b0a7e9119038b16f117e37398e69f268fe500bf528cb3e6d56c size: 741

8、curl验证私服库上有什么镜像

[root@docker130 ~]# curl -XGET http://192.168.10.130:5000/v2/_catalog
{"repositories":["zzyyubuntu"]}

9、pull到本地并运行

docker pull 192.168.10.130:5000/zzyyubuntu:1.2

评论

暂无

添加新评论