首页
关于
Search
1
信创日志:银河麒麟V10 安装 国产NGINX
1,297 阅读
2
信创日志:银河麒麟V10 安装 国产JDK - Alibaba dragonwell
384 阅读
3
docker_portainer安装教程
382 阅读
4
搭建SMB 的网络服务器
256 阅读
5
Docker离线安装教程
250 阅读
默认分类
docker虚拟化技术
网络服务器
数据库
spring
spring boot
spring cloud
信创-国产化
鸿蒙应用开发
Go
树莓派
AidLux OS
Vue 3
React
登录
/
注册
Search
标签搜索
docker
自建仓库
regustry
微服务
spring cloud
跨平台应用
李胤
累计撰写
26
篇文章
累计收到
32
条评论
首页
栏目
默认分类
docker虚拟化技术
网络服务器
数据库
spring
spring boot
spring cloud
信创-国产化
鸿蒙应用开发
Go
树莓派
AidLux OS
Vue 3
React
页面
关于
搜索到
26
篇与
的结果
2023-12-21
自建Docker仓库
总所周知,Docker的强大主要是依赖于其仓库中镜像的存在,公用仓库不用说,那如何创建一个私有的个人仓库呢,本片文章小编会从三个方面进行简单的阐述。一、在docker的官方网站中直接创建首先在官方网址(https://hub.docker.com/)中,创建属于自己的账户,在Repository中创建自己的仓库。![2023-12-21T11:25:35.png][1]图 1 在官网中创建自己的仓库根据所需仓库要求,根据上述选项创建在官网自己的镜像仓库。远程登录自己的镜像仓库,并进行相应的操作(具体操作在本地搭建私有仓库时进行讲解)。图 2 登录自己的doker官方仓库二、搭建自己本地的仓库2.1、搭建自己的本地仓库在Docker的官方镜像中已经给我们提供了自己搭建仓库的镜像,我们只需要下载即可:##获取官方镜像 [root@server1 ~]# docker pull registry [root@server1 ~]# docker images registry ##以该镜像为基础,启动容器 [root@server1 ~]# docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry ##上传镜像(需要先更改镜像名称,以指定上传的仓库) [root@server1 ~]# docker tag webserver:latest localhost:5000/webservr:latest [root@server1 ~]# docker push localhost:5000/webservr ##上传 ##查看挂载的地址 [root@server1 ~]# tree /opt/registry ##查看所挂载的镜像 [root@server1 ~]# curl localhost:5000/v2/_catalog图 3 搭建本地仓库图 4 给本地仓库上传镜像上述过程就是我们简单的搭建了一个个人本地私有仓库,可以进行镜像的上传和获取![注] docker在镜像的上传和下载过程中默认的方式为:HTTPS。在上述测试过程中,我们可以临时将本地的仓库设为不安全的通信方式:##设定registry为不安全的方式 [root@server1 docker]# /etc/docker/daemon.json ##文件内容 { "insecure-registries" : ["myregistrydomain.com:5000"] ##myregistrydomain.com表明仓库的地址 } 图 5 使用不安全方式给本地仓库上传镜像2.2、为本地镜像添加认证2.2.1、添加证书加密功能##官方文档:https://docs.docker.com/registry/insecure/ ##创建自签名证书 [root@server1 ~]# mkdir -p certs [root@server1 ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.key -x509 -days 365 -out certs/westos.crt ##签名填写 ##在填写签名是,需要注意域名的填写,需要和认证保持一致 ##创建成功后,重新搭建容器registry(官方文档:https://docs.docker.com/registry/deploying/) [root@server1 ~]# docker run -d --name registry -v "$(pwd)"/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.key -v /op/registry:/var/lib/registry -p 443:443 registry ##查看存在的镜像 [root@server1 ~]# curl -k https://localhost/v2/busybox/tags/list ##上传镜像 #把生成的证书传到docker的配置文件中 [root@server1 ~]# mkdir -p /etc/docker/certs/reg.westos.org/ [root@server1 ~]# cp ~/certs/wetsos.org.crt /etc/docker/certs/reg.westos.org/ca.crt ##本地传输 [root@server1 ~]# docker push localhost:443/webservr [root@server1 ~]# docker push reg.westos.org/webservr ##远程传输 #复制证书文件 [root@server1 ~]# scp /root/certs/westos.org.crt server:/etc/docker/certs/reg.westos.org/ca.crt #远程传输(需要提前更改好标签,做好地址解析) [root@server2 ~]# docker push reg.westos.org/webserver:latest 图 6 生成CA认证证书图 7 添加证书启动镜像图 8 使用认证的方式进行上传镜像 2.2.2、添加用户登录认证##官方文档:https://docs.docker.com/registry/deploying/ ##安装htpasswd工具 [root@server1 ~]# yum install -y httpd-tools ##生成用户加密文件 [root@server1 ~]# mkdir auth [root@server1 ~]# htpasswd -Bc auth/htpasswd admin ## B 表示强制认证 [root@server1 ~]# htpasswd -B auth/htpasswd linux ## c 表示第一次创建 ##重现启动容器(使用镜像重新生成) [root@server1 ~]# docker rm -f registry [root@server1 ~]# docker run -d --name registry -v /opt/registry:/var/lib/registry -p 443:443 -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 -v "$(pwd)"/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry ##登录仓库,进行文件上传 [root@server1 ~]# docker login reg.westos.org #远程登录:保证网络畅通即可(需要注意的是这里启动时我们采用的是加密的传输方式,所以需要先将证书复制到docker文件中(/etc/docker/certs.d/reg.westos.org/ca.crt)) [root@server2 ~]# docker login reg.westos.org 图 9 使用thpasswd创建登录用户图 10 在CA认证的基础上添加用户认证三、部署Harbor仓库##资源下载:https://github.com/goharbor/harbor/releases ##解压安装包 [root@server1 app]# tar zxf harbor-offline-installer-v2.3.2.tgz ##安装docker-compose文件 [root@server1 harbor]# cat /usr/local/bin/docker-compose-linux-x86_64 >> /usr/local/bin/docker-compose [root@server1 harbor]# chmod +x /usr/local/bin/docker-compose [root@server1 harbor]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose ##编辑配置文件 [root@server1 harbor]# vim harbor.yml.tmpl ##运行 [root@server1 harbor]# ./install/sh [root@server1 harbor]# ./install.sh --with-notary --with-chartmuseum --with-trivy 【注】上述安装过程中可能会出现安装包的依赖性,此时需要安装docker-compose管理工具:图 11初步安装harbor图 12 修改harbor的初始配置文件 图 13 修改harbor的配置文件 如果注释证书,此时需要将--insecure-reghistry添加到客户端的Docker的守护进程中,默认文件夹位置为:/etc/docker/daemo.json 内容: { "registry-mirrors": ["https://reg.westos.org"], ####换成自己的镜像仓库地址,下载时也会首先从本地下载 "insecure-registries" : ["172.25.21.5:80", "0.0.0.0"] } 配置完成后需要重启服务: systemctl restart docker docker-compose down -v docker-compose up -d 启动成功后,自动产生docker-compose.yml的配置文件图 14 成功启动后的harbor配置目录启动后的容器:图 15 harbor所启动的容器 在网页登录:图 16 harbor的图形化登录界面使用docker-compose命令查看启动的容器组 :图 17 docer=compose的管理命令 ##harbor的使用,通常情况下使用docker-compose进行管理 docker-compose down 关闭管理组中的的所有容器 docker-compose stop 临时停止容器组中的所有容器 docker-compose start 重现启动容器组中的所有容器 图 18 docer=compose的管理命令图 19 docer=compose的管理命令根据需求重新安装Harbor:图 20 添加harbor的镜像扫描的额外功能,重新启动 上述则是harbor的安装,使用过程则是分为图形界面的使用,以及在终端上的仓库上传,在上传时,首先要做的就是登录此时登录的仓库为:reg.westos.org,同时必须设置标签(这里做签名),在获取镜像时需要写入全部名称(eg:docker pull reg.westos.org/westos/ubuntu)。其他操作和私有仓库相同,这里不再做赘述,只进行签名认证的阐述。 ##镜像签名 ##部署根证书 /etc/docker/certs.d/reg.westos.org/ca/crt ~/.docker/tls/reg.westos.org:4443/ca.crt ##启用docker内容信任 export DOCKER_CONTENT_TRUST=1 export DOCKER_CONTENT_TRUST_SERVER=https://reg.westos.org:4443 ##长传镜像 docker push reg.westos.org/library/nginx:lattest ##过程会生成两个密钥,包括根root key和仓库key ##删除签名 export DOCKER_CONTENT_TRUST=0 docker trust reovke reg.westos.org/library/nginx:latest
2023年12月21日
238 阅读
3 评论
1 点赞
1
...
5
6