一、本地镜像发布到阿里云流程
二、镜像的生成方法
基于当前容器创建一个新的镜像,新功能增强
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
评论