Docker镜像仓库Register的搭建


前言


一、仓库用途

Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
Docker运行中使用的默认仓库是 Docker Hub 公共仓库。

二、DockerHub仓库搭建方式

1.公共镜像仓库的搭建方式

docker tag nginx:1.18.0 dockerwestos/nginx:1.18						#将本地镜像的名称以及TAG标签进行更改为自己需要的标签
docker login														#登陆dockerhub的账户进行登陆
docker push dockerwestos/nginx:1.18									#上传本地镜像

在这里插入图片描述

2.Docker镜像加速器设置

这里使用的是阿里云的加速器,注册账号即可使用
vim /etc/docker/daemon.json					#原本没有该文件自行创建即可
systemctl restart docker					#重启后该服务会进行生效使得其可以进行加速

在这里插入图片描述在这里插入图片描述

三、镜像加速器配置

1.阿里云注册账号即可使用该服务

vim /etc/docker/daemon.json					#将下方的文件直接复制进入
{
  "registry-mirrors": ["https://8ex9adjz.mirror.aliyuncs.com"]
}
重新启动服务即可生效

四、Registry的搭建方式

1.Registry本地私有仓库的搭建以及上传

docker pull registry						#拉取官方私有仓库容器使得其可以进行搭载
docker run -d -p 5000:5000 --restart=always --name demo registry		#运行镜像--restart=always表示重启docker后仍旧运行该镜像不会被退出
docker tag nginx:latest localhost:5000/nginx:new		#更改镜像的TAG标签
docekr push localhost:5000/nginx:new					#上传更改过的镜像到私有仓库

在这里插入图片描述
在这里插入图片描述

2.本地Reegistry镜像仓库证书加密

yum install openssl11 -y 						#需要epel源将本地名令进行升级使其可以支持
openssl11 req -newkey rsa:4096 -nodes -sha256 -keyout certs/www.registry.org.key -addext "subjectAltName = DNS:www.registry.org" -x509 -days 365 -out certs/www.registry.org.crt
Generating a RSA private key
												#使用openssl11生成软件仓库的证书使其可以进行certs/www.registry,irg,crt使用的是相对路径注意下自己的所在位置

在这里插入图片描述

mkdir -p  /etc/docker/certs.d/www.registry.org/			#建立存放证书的使得容器运行后自动读取证书
cp certs/www.registry.org.crt /etc/docker/certs.d/www.registry.org/ca.crt	#证书必须为ca.crt否则不会识别
docker run -d -p 443:443 --name registry --restart=always -v /root/certs:/certs/ -v /opt/registry:/var/lib/registry/ -e REGISTRY_HTTP_ADDR=0.0.0.0:443   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/www.registry.org.crt   -e REGISTRY_HTTP_TLS_KEY=/certs/www.registry.org.key registry
	#运行容器使得容器可以在后台自动运行同时将证书添加上去使得容器可以进行加密访问-v表示挂载目录目录未创建则自动创建-e表示添加证书

在这里插入图片描述在这里插入图片描述

3.Registry私有仓库http加密

  1. 用户名和密码生成
mkdir auth				#建立存放认证的目录
htpasswd -Bc auth/htpasswd uset1		#-B表示安全-c表示创建二次创建时不要加-c否则会覆盖之前的

在这里插入图片描述

2.运行仓库

docker run -d -p 443:443 --restart=always --name registry \
> -v /root/auth:/auth/ \					#挂载认证
> -v /root/certs:/certs/ \					#挂载证书
> -v /opt/registry:/var/lib/registry \		#挂载数据卷
> -e "REGISTRY_AUTH=htpasswd" \
> -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
> -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
> -e "REGISTRY_HTTP_ADDR=0.0.0.0:443" \
> -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/www.registry.org.crt" \
> -e "REGISTRY_HTTP_TLS_KEY=/certs/www.registry.org.key" \
> registry 

在这里插入图片描述

  1. 上传镜像到本地
docker tag yakexi007/game2018 www.registry.org/game2048			#更改tag标签准备上传
docker login www.registry.org 									#登陆私有仓库
docker push www.registry.org/game2048							#上传镜像

在这里插入图片描述在这里插入图片描述


总结


版权声明:本文为b_______原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。