Docker仓库搭建

news2024/9/27 13:56:45

目录

一、Docker Hub

二、私有Registry仓库搭建

1、下载并开启仓库镜像registry

2、Registry加密传输

3、建立一个registry仓库

4、为客户端建立证书

5、测试

6、为仓库建立登录认证

三、Harbor仓库搭建


Docker 仓库(Docker Registry) 是用于存储和分发 Docker 镜像的集中式存储库。 它就像是一个大型的镜像仓库,开发者可以将自己创建的 Docker 镜像推送到仓库中,也可以从仓库中拉 取所需的镜像。 Docker 仓库可以分为公共仓库和私有仓库: 公共仓库,如 Docker Hub,任何人都可以访问和使用其中的镜像。许多常用的软件和应用都有在 Docker Hub 上提供的镜像,方便用户直接获取和使用。 例如,您想要部署一个 Nginx 服务器,就可以从 Docker Hub 上拉取 Nginx 的镜像。 私有仓库则是由组织或个人自己搭建和管理的,用于存储内部使用的、不希望公开的镜像。 比如,一家企业为其特定的业务应用创建了定制化的镜像,并将其存储在自己的私有仓库中, 以保证安全性和控制访问权限。 通过 Docker 仓库,开发者能够方便地共享和复用镜像,加速应用的开发和部署过程。

一、Docker Hub

Docker Hub 是 Docker 官方提供的一个公共的镜像仓库服务。 它是 Docker 生态系统中最知名和广泛使用的镜像仓库之一,拥有大量的官方和社区贡献的镜像。 以下是 Docker Hub 的一些关键特点和优势: 1. 丰富的镜像资源:涵盖了各种常见的操作系统、编程语言运行时、数据库、Web 服务器等众多应用 的镜像。 例如,您可以轻松找到 Ubuntu、CentOS 等操作系统的镜像,以及 MySQL、Redis 等数据库 的镜像。 2. 官方支持:提供了由 Docker 官方维护的一些重要镜像,确保其质量和安全性。 3. 社区贡献:开发者们可以自由上传和分享他们创建的镜像,促进了知识和资源的共享。 4. 版本管理:对于每个镜像,通常都有多个版本可供选择,方便用户根据需求获取特定版本。 5. 便于搜索:用户可以通过关键词轻松搜索到所需的镜像。

PULL & PUSH

pull原理

镜像拉取分为以下几步:

1.docker客户端向index发送镜像拉去请求并完成与index的认证

2.index发送认证token和镜像位置给dockerclient

3.dockerclient携带token和根据index指引的镜像位置取连接registry

4.Registry会根据client持有的token跟index核实身份合法性

5.index确认此token合法性

6.Registry会根据client的请求传递镜像到客户端

push原理

1.client向index发送上传请求并完成用户认证

2.index会发方token给client来证明client的合法性

3.client携带index提供的token连接Registry

4.Registry向index合适token的合法性

5.index证实token的合法性

6.Registry开始接收客户端上传过来的镜像

二、私有Registry仓库搭建

1、下载并开启仓库镜像registry

[root@docker-node1 ~]# docker pull registry

[root@docker-node1 ~]# docker run -d -p 5000:5000 --restart=always registry	#暴露端口

[root@docker-node1 ~]# docker tag nginx:v3 172.25.254.100:5000/nginx:v3
[root@docker-node1 ~]# docker push 172.25.254.100:5000/nginx:v3
The push refers to repository [172.25.254.100:5000/nginx]
Get "https://172.25.254.100:5000/v2/": http: server gave HTTP response to HTTPS client
#docker在上传的过程中默认使用https,但是我们并没有建立https认证需要的认证文件所以会报错

[root@docker ~]# vim /etc/docker/daemon.json
{
  "insecure-registries" : ["http://172.25.254.100:5000"]
}
[root@docker ~]# systemctl restart docker
#配置非加密端口

[root@docker-node1 ~]# docker push 172.25.254.100:5000/nginx:v3
[root@docker ~]# curl 172.25.254.100:5000/v2/_catalog
#上传并查看镜像
[root@docker-node1 ~]# docker tag busybox:latest 172.25.254.100:5000/busybox:latest
[root@docker-node1 ~]# docker push 172.25.254.100:5000/busybox:latest
[root@docker-node1 ~]# curl 172.25.254.100:5000/v2/_catalog

2、Registry加密传输

Docker Registry 私有库的加密传输主要作用在于确保镜像在从客户端推送到私有库或从私有库拉取到客户端的过程中,数据不会被恶意窃取或篡改。通过加密通信通道,能有效保护敏感的镜像内容,增强数据的安全性和保密性,为企业内部的容器化应用部署提供更可靠的保障。

[root@docker-node1 ~]# vim /etc/hosts
172.25.254.100  docker-node1.mlh.org reg.leoma.org
#为仓库地址做解析

[root@docker-node1 ~]# mkdir certs
[root@docker-node1 ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/leoma.org.key -addext "subjectAltName = DNS:reg.leoma.org" -x509 -days 365 -out certs/leoma.org.crt
[root@docker-node1 ~]# ls certs/
leoma.org.crt  leoma.org.key

3、建立一个registry仓库

[root@docker-node1 ~]# docker run -d -p 443:443 --restart=always \
> -v /root/certs:/certs \
> -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
> -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/leoma.org.crt \
> -e REGISTRY_HTTP_TLS_KEY=/certs/leoma.org.key registry:latest
2299907d38f0282eecc6c575f576ea7a6ff3775bc1daea0f9b011d61820997e5

-d:以守护式(后台)模式运行容器。
-p 443:443:将主机的 443 端口映射到容器的 443 端口。通常 443 端口用于 HTTPS 服务。
--restart=always:设置容器在退出或主机重启时自动重新启动。
-v /root/certs:/certs:将主机上的/root/certs目录挂载到容器内的/certs目录。这样可以让容器访问主机上存储的证书文件。
-e REGISTRY_HTTP_ADDR=0.0.0.0:443:设置环境变量,指定 Registry 服务监听的地址和端口为0.0.0.0:443,表示在所有网络接口上监听 443 端口。
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/leoma.org.crt:设置环境变量,指定 Registry 使用的 TLS 证书文件路径为容器内的/certs/leoma.org.crt。这个证书用于加密容器与客户端之间的通信。
-e REGISTRY_HTTP_TLS_KEY=/certs/leoma.org.key:设置环境变量,指定 Registry 使用的 TLS 私钥文件路径为容器内的/certs/leoma.org.key。私钥与证书配合使用进行加密通信。
registry:latest:指定要运行的容器镜像为registry:latest,即 Docker Registry 的最新版本镜像。

4、为客户端建立证书

[root@docker-node1 ~]# mkdir /etc/docker/certs.d/reg.leoma.org -p
[root@docker-node1 ~]# cp /root/certs/leoma.org.crt /etc/docker/certs.d/reg.leoma.org/ca.crt
[root@docker-node1 ~]# systemctl restart docker

5、测试

[root@docker-node1 ~]# docker tag nginx:v3 reg.leoma.org/nginx:v3
[root@docker-node1 ~]# docker push reg.leoma.org/nginx:v3

6、为仓库建立登录认证

#安装建立认证文件的工具包
[root@docker docker]# dnf install httpd-tools -y

#建立认证文件
[root@docker-node1 ~]# mkdir auth
[root@docker-node1 ~]# htpasswd -B auth/.htpasswd admin
[root@docker-node1 ~]# htpasswd -Bc auth/.htpasswd leo
New password:
Re-type new password:

Adding password for user admin
[root@docker-node1 ~]# cat auth/.htpasswd
leo:$2y$05$oj/d6bTWuHJhU3mt2c.lDuLlv/xOyI6GJ20o5zeJ0f3kndhldzfcW
admin:$2y$05$b6F2PMyS.GD4bhlE23kuSe8FbVVGr0OcgAWhN.IB3EnxFMGk9ALs.

auth/.htpasswd:指定要创建的密码文件的路径和名称。在这个例子中,密码文件将被创建在 auth 目录下,文件名为 .htpasswd

#添加认证到registry容器中
[root@docker-node1 ~]# docker run -d -p 443:443 --restart=always -v /root/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/leoma.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/leoma.org.key \
> -v /root/auth:/auth \
> -e REGISTRY_AUTH=htpasswd \
> -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
> -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/.htpasswd \
> registry

[root@docker-node1 ~]# docker login reg.leoma.org
Username: leo
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential-stores

Login Succeeded

#上传
[root@docker-node1 ~]# docker tag nginx:latest reg.leoma.org/nginx:latest
[root@docker-node1 ~]# docker push reg.leoma.org/nginx:latest

测试
[root@docker-node1 ~]# curl -k https://reg.leoma.org/v2/_catalog -uleo:leo
{"repositories":["nginx"]}

三、Harbor仓库搭建

Harbor 是由vmware公司开源的企业级 Docker Registry 项目。 它提供了以下主要功能和特点: 1. 基于角色的访问控制(RBAC):可以为不同的用户和用户组分配不同的权限,增强了安全性和管理 的灵活性。 2. 镜像复制:支持在不同的 Harbor 实例之间复制镜像,方便在多个数据中心或环境中分发镜像。 3. 图形化用户界面(UI):提供了直观的 Web 界面,便于管理镜像仓库、项目、用户等。 4. 审计日志:记录了对镜像仓库的各种操作,有助于追踪和审查活动。 5. 垃圾回收:可以清理不再使用的镜像,节省存储空间。

[root@localhost ~]# vim /etc/hosts
172.25.254.111 reg.leoma.org
[root@localhost ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/leoma.org.key -addext "subjectAltName = DNS:reg.leoma.org" -x509 -days 365 -out certs/leoma.org.crt

[root@localhost ~]# tar zxf harbor-offline-installer-v2.5.4.tg
[root@localhost harbor]# cp harbor.yml.tmpl harbor.yml
[root@localhost harbor]# ls
common.sh  harbor.v2.5.4.tar.gz  harbor.yml  harbor.yml.tmpl  install.sh  LICENSE  prepare
[root@docker harbor]# vim harbor.yml
 hostname: reg.leoma.org
 certificate: /data/certs/leoma.org.crt
 private_key: /data/certs/leoma.org.key
 harbor_admin_password: leo

[root@localhost /]# mkdir data
[root@localhost harbor]# cp /root/certs/ /data/ -r
[root@localhost harbor]# ./install.sh --with-chartmuseum

docker compose down	#docker compose down命令用于停止和移除由 Docker Compose 管理的容器、网络、卷和镜像

docker compose up -d	#用于以分离模式(detached mode)启动由 Docker Compose 管理的容器

[root@localhost ~]# docker tag reg.leoma.org/nginx:v3 reg.leoma.org/leoma/nginx:v3
[root@localhost ~]# docker push reg.leoma.org/leoma/nginx:v3

私有仓库作为默认下载仓库

[root@localhost docker]# vim daemon.json
{
    "registry-mirrors" : ["http://reg.leoma.org"]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征

特征工程是机器学习流程中的关键步骤,在此过程中,原始数据被转换为更具意义的特征,以增强模型对数据关系的理解能力。 特征工程通常涉及对现有数据应用转换,以生成或修改数据,这些转换后的数据在机器学习和数据科学的…

书生大模型实战营学习[9] OpenCompass 评测 InternLM-1.8B 实践

准备工作 打开开发机,选择cuda11.7环境,A100选择10%,点击创建,然后进入开发机即可,和之前的操作一样。接下来创建环境,下载必要的依赖包 conda create -n opencompass python3.10 conda install pytorch2…

什么是网络安全自动化以及优势与挑战

目录 网络安全自动化的工作原理 网络安全自动化的好处 增强的安全功能 改善表现和姿势 降低安全成本 简化的安全合规性和审计 更好的端点管理 网络安全自动化的挑战 耗时且容易出错的安全流程 可见性降低,风险和成本增加 合规管理 有用的网络安全自动化…

2024年合肥市职业院校技能大赛(中职组)赛 网络安全 竞赛样题

2024年合肥市职业院校技能大赛(中职组)赛 网络安全 竞赛样题 (总分100分) 培训、环境、资料、考证 公众号:Geek极安云科 网络安全群:624032112 网络系统管理群:223627079 网络建设与运维群:870959784 极安云科专注于技能提升&am…

基于nodejs+vue的旅游管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

Docker启动失败,Failed to start docker,只需三个步骤,看我怎么搞定它!

在项目部署上线的时候 1打开hyper-v虚拟机 怎么打开呢? 命令提示符输入control,点击回车,打开控制面板,打开“程序和功能”,“启用和关闭windows功能”,选择Hyper-v,勾选下面的每一项内容。完成之后又点…

机器学习-模型集成

文章目录 模型集成为什么要集成?模型集成要解决的问题主要的集成思想 Committees多个模型的结果进行融合。BaggingBagging 特点 BoostingAdaBoost算法过程 GBDT负梯度拟合 XGBoostXGBoost 参数通用参数booster 参数学习目标参数 模型保存 模型集成 三个臭皮匠顶一个…

结构连接能否成为精神病早期的功能预后标志?

TLDR: 该研究发现精神病首次发作的患者(未经药物治疗)脑部存在广泛的结构连接减少,尤其是前额叶-纹状体-丘脑系统的连接异常。基线时的脑部结构连接可以有效预测患者12个月后的功能恢复情况。研究表明,脑部结构连接的减少可能与精…

【游戏策划 还能这么玩】

长期陷入低迷的桌游圈最近重新焕发出希望的光芒。由腾讯和网易离职的策划及美术团队开发的桌游《王冠继承者之战》在一小时内众筹金额突破20万。 对于游戏策划者来说,不妨拓展思路,将目光转向尚未充分挖掘的桌游市场,那里可能蕴藏着让人意想…

C++ 标准模板库(STL)之集合(set)

啊,哈喽,小伙伴们大家好。我是#张亿,今天呐,学的是集合(set) C 标准模板库(STL)之集合(set) (下面代码中的std::要去掉) 在C标准模板库(STL&am…

HCIP——HCIA回顾

第一章.HCIA复习 引入场景 其实IA我们主要学习的无非就是数据包在网络中传递的基本过程,我们设计一个场景,通过回顾web页面的请求过程,将IA学过的基本网络工作原理来串一遍。 (在本例中,ISP网络为学校提供了DNS服务,…

数据恢复新宠!2024年Top3宝藏工具

在这个离不开电脑和手机的时代,U盘是我们存储照片、文档、视频的得力助手。万一U盘格式化了,别担心,数据很可能能恢复。2024年流行的三种恢复方法,都能帮你找回丢失的数据。记住,格式化后数据并非真正消失,…

【SpringBoot详细教程】-05-整合Druid操作数据库【持续更新】

文末看往期系列教程:给个关注可好? 🌲 SpringData简介 对于数据访问层,无论是 SQL (关系型数据库) 还是 NoSql (非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。 Spring Boot 底层都是采…

Python实现:时间序列趋势外推法应用-龚珀兹曲线拟合

龚珀兹曲线 下表数据为某跨国公司1989-2021年的年销售量数据,使用适合的模型预测该公司2022年的销售额,并得出理由。 部分数据如下表(具体数据从主页资源下载): 年份时序(t)总额(y…

Spring JDBC及声明式事务

目录 Spring JDBC基础概念 Spring声明式事务 事务传播方式 Spring JDBC基础概念 Spring JDBC 封装了原生的JDBC API,使得处理关系型数据库更加简单。Spring JDBC的核心是JdbcTemplate,里面封装了大量数据库CRUD的操作。使用Spring JDBC…

八大核心能力铸就销售精英:解锁成功销售的密钥

成功销售,既是精妙绝伦的艺术展现,也是融汇多元技能的卓越实践。无论企业处于初创的萌芽阶段,还是屹立行业的巅峰之列,跨越销售高峰的征途上,销售人员所掌握的八大核心能力,如同星辰指引,不可或…

高性能、高可靠,MK SD卡让数据存储无忧!

文章目录 SD卡(Secure Digital Memory Card),作为当代数字生活中不可或缺的存储媒介,凭借其卓越的数据传输效率、灵活的热插拔功能以及惊人的存储容量,在多个领域大放异彩。从日常使用的智能手机、平板电脑到追求极致体…

【ARM】解决ArmDS Fast Models 中部分内核无法上电的问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决ArmDS Fast Models 中部分内核无法上电的问题。 2、 问题场景 在调用ArmDS的Fast Models中的Cortex-A55的模型,只有Core 0是上电状态,而Core 1处于掉电状态,如图2-1所示&…

美国林氏集团宣布全面进军Web3领域

吉隆坡,马来西亚——近日举行的第六界博览会上,美国林氏集团董事局主席林建中先生宣布,集团将通过旗下的大东亚银行创建一个全新的、合规的区块链交易所,并正式进军Web3、元宇宙及AI领域。同时,美国林氏集团将利用其在…

物流的总结

pc端(商家端到仓、冷链,管理端冷链数据)、H5、小程序(冷链) 冷链快运系统介绍文档 1. 系统概述 冷链快运系统致力于确保温控产品在运输过程中的安全与质量,通过高效的运单管理、异常处理及预约服务&#…