【项目实战10】Docker2(私有仓库registry搭建)

一、前言

Docker Hub作为Docker默认官方公共镜像,拉取时需要连接网络。如果想要自己搭建私有镜像仓库,官方也提供Registry镜像,使得我们搭建私有仓库变得非常简单。

私有仓库,是指在搭建在本地的仓库。可以将镜像文件上传到本地仓库,搭建好之后,进入docker集群服务的机器可以直接从本地下载,速度较快。这样可以使用Docker 来运行我们的项目镜像,也避免了商业项目暴露出去的风险。

二、搭建过程

server1

一、加载导入镜像

[root@server1 ~] docker load  -i registry2.tar            将镜像仓库文件上传到docker仓库
[root@server1 ~] docker imagines                          图1、查看镜像文件   
[root@server1 ~] docker  history   registry2              图2、查看镜像历史,找到registry挂载目录,           

图1、查看镜像文件
在这里插入图片描述
图2、查看到容器内仓库的地址为/var/lib/registry
在这里插入图片描述

二、测试本地上传文件

docker run -d -p 5000:5000 registry:2               运行仓库
docker load -i nginx                                将nginx导入docker容器仓库
docker tag nginx:latest localhost:5000/nginx:latest 本地镜像在命名时需要加上仓库的ip和端口
docker push localhost:5000/nginx:latest              本地上传nginx文件

上传成功

三、为Docker仓库添加证书加密功能

一、生成证书

[root@server1 ~] mkdir certs      建立存放证书和密钥的的地址
[root@server1 ~] cd certs/
[root@server1 ~] openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 -out certs/westos.org  生成证书和密钥

证书密钥创建过程如下
在这里插入图片描述

二、重建仓库

刚才已经获取了证书,现在给仓库加入证书,重新建立仓库。

[root@server1 ~] docker run -d \
--restart=always \
--name registry \
-v "$(pwd)"/certs:/certs \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key \
-p 443:443 \
registry
重建registry仓库

拷贝证书到docker主机/etc/docker/certs.d目录

cd /etc/docker/
mkdir certs.d
cd certs.d/
mkdir reg.westos.org
cd reg.westos.org/
cp ~/certs/certs.d/westos.org.crt/  ca.crt

三、上传测试

docker load -i busybox
docker tag busybox:latest westos.org/busybox:latest
docker push westos.org/busybox:latest

上传成功即可

三、Docker仓库添加用户认证功能

一、导入用户认证

server1

[root@server1 ~] mkdir auth
[root@server1 ~]docker run --rm --entrypoint htpasswd \
> registry -Bbn admin westos > auth/htpasswd

二、重建registry容器

docker run -d -p 443:443 \ 
--restart=always --name registry \ 
-v "$(pwd)"/auth:/auth \ 
-e "REGISTRY_AUTH=htpasswd" \ 
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ 
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -v "$(pwd)"/certs:/certs \ 
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \ 
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt \ 
-e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key \ registry

三、登陆主机认证

server1

docker login westos.org
输入用户admin和密码westos即可

至此本地仓库搭建完成,下面部分是其他虚拟机的本地仓库配置

四、server2使用私有仓库

将server1内证书传递至server2/etc/docker/certs.d目录下
server1

[root@server1 ~] cd /etc/docker/certs
[root@server1 ~] scp -r reg.westos.org server2:/etc/docker/certs

server2

[root@server2 ~] vim /etc/hosts 图1、修改地址解析
[root@server2 ~] docker login reg.wesgos.org 图2、登陆本地仓库

图1修改地址解析
在这里插入图片描述
server2登陆本地仓库下载
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值