第九章 搭建私有镜像仓库

目录

一、概述

二、搭建步骤

2.1. 下载镜像Docker Registry

2.2. 运行私有库Registry

2.3. 创建新镜像

2.4. 验证私服上的镜像

2.5. 将新镜像修改符合私服规范的Tag

2.6. 修改配置文件使之支持http

2.7. push推送到私服库

2.8. 验证私服上的镜像2

2.9. pull到本地运行


一、概述

官方Docker Hub地址:https://hub.docker.com/ 中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流。DockerHub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公网,所以需要创建一个本地私人仓库供给团队使用,基于公司内部项目构建镜像。Docker Registry是官方提供的工具,可以用于构建私有镜像仓库。

在Docker环境中,‌UAT‌、‌promote‌和‌production‌分别代表不同的环境阶段和用途:

  1. UAT (User Acceptance Test)‌:用户验收测试环境,是软件开发过程中的一个重要阶段,用于确保软件系统满足最终用户的实际需求。在这个环境中,用户可以进行实际操作测试,以确保软件的功能和性能符合预期。UAT环境通常是在正式部署到生产环境之前,为用户提供的一个模拟真实使用环境的测试平台。

  2. promote‌:在软件开发和部署的过程中,"promote"一词通常指的是将软件从开发、测试或预发布环境转移到下一个更接近最终用户使用的环境。这个过程可能包括将软件从开发环境转移到测试环境,再从测试环境转移到UAT环境,最终推广到生产环境。Promotion确保了软件在不同阶段的环境中逐步接受测试和验证,以确保软件的稳定性和可用性。

  3. production‌:生产环境,即正式的线上环境,是软件最终部署和运行的环境,面向外部用户开放,用户可以直接访问和使用该环境中的软件。生产环境通常具有最高的安全性和稳定性要求,以确保软件能够持续、稳定地为最终用户提供服务。

二、搭建步骤

2.1. 下载镜像Docker Registry

# docker pull registry 下载Docker私有仓库镜像

docker pull registry:2

2.2. 运行私有库Registry

相当于本地有个私有Docker Hub

docker run -d -p 5000:5000 --name registry -v /home/wzx/registry/:/tmp/registry --privileged=true registry:2
  • docker run -d:在后台运行一个新的容器。

  • -p 5000:5000:将容器的5000端口映射到宿主机的5000端口。

  • --name registry:为运行的容器命名为"registry"。

  • -v 卷挂载 用于将主机上的指定目录挂载到容器内的/tmp/registry目录

  • --privileged=true:给予容器额外的权限,例如访问宿主机的设备。

  • registry:2:指定要运行的镜像名和标签(tag),这里是从Docker Hub下载的官方registry镜像的第二版。 

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

2.3. 创建新镜像

# -a表示指定作者 -m表示容器描述信息 wzx-tomcat为容器名称 1.0表示容器的Tag
docker commit -a="wangzhexiao" -m="wzx's tomcat, add  webapps app" 容器id wzx-tomcat:1.0

2.4. 验证私服上的镜像

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

curl -XGET http://192.168.1.11:5000/v2/_catalog

/v2/_catalog 是官方规定的私有镜像仓库请求路径,详见官方文档

请求私有镜像仓库,发现没有任何镜像。 

2.5. 将新镜像修改符合私服规范的Tag

docker tag wzx-tomcat:1.0 localhost:5000/wzx-tomcat:1.0

 因为是在自己本地上创建私库并验证,所以这里填写本机IP地址localhost

下图红框内的就是按照私服规范生成的新tomcat镜像 :

2.6. 修改配置文件使之支持http

配置Docker客户端以信任私有仓库:

编辑或创建/etc/docker/daemon.json文件,添加私有仓库地址

{
  "insecure-registries" : ["your-private-registry-ip:5000"]
}
sudo systemctl restart docker

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

2.7. push推送到私服库

docker push your-private-registry-ip:5000/your-image:tag

2.8. 验证私服上的镜像2

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

2.9. pull到本地运行

docker pull your-private-registry-ip:5000/your-image:tag

至此,一个完整的Docker私服仓库搭建和镜像推送拉取就已经完成。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值