Docker技术相关学习三

一、Docker镜像仓库管理

        1.docker仓库:用于存储和分发docker镜像的集中式存储库,开发者可以将自己创建的镜像推送到仓库中也可以从仓库中拉取所需要的镜像。

        2.docker仓库:

                公有仓库(docker hub):任何人都可以直接访问和使用其中的镜像

                私有仓库:由组织或个人自己搭建和管理的,用于存储内部使用并且不希望公开的镜像

        3.docker hub使用方法:

                登录官方仓库:docker login

                输入用户名和密码后即可登录

                登录信息保存的位置:               

[root@docker ~]# cd .docker/
[root@docker .docker]# ls
config.json
[root@docker .docker]# cat config.json
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "dGltaW5nbGVlOjY3NTE1MTVtaW5nemxu"
}
}

                docker仓库的工作原理:

                        仓库中三个角色:

                        index docker索引服务,负责并维护有关用户、镜像的校验以及公共命名空间信息

                        registry docker仓库:镜像和图标的仓库,不具有本地数据库以及不提供用户认证,通过index auth service的token方式进行认证

                        registry client:docker充当registry客户端来维护推送和拉取以及客户端授权

                        pull原理:

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

                        index发送认证token和镜像位置给docker client

                        docker client携带token和根据index指引的镜像位置连接registry

                        registry会根据client持有的token和index核验身份的合法性

                        index确认此token的合法性

                        registry会根据client的请求传递镜像到客户端

                        push原理:

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

                                index会发送token给client来证明client的合法性

                                client携带index提供的token连接registry

                                registry向index询问token的合法性

                                index证实token的合法性

                                registry开始接收客户端上传的镜像

        4.docker搭建私有仓库:

                下载registry镜像:docker  pull registry

                开启registry:docker run -d -p 5000:5000  --restart=always  --name  registry  registry

                上传镜像到仓库中:

                        给要上传的镜像贴标签:

                        docker tag busybox:latest  172.25.254.100:5000/busybox:latest

                        配置非加密端口(docker在上传的过程中默认使用的是https,但是在没有建立https认证的情况下需要做以下配置):   

vim /etc/docker/daemon.json
{
    "insecure-registries": ["http://172.25.254.100:5000"]
}
systemctl restart docker

                        上传镜像:

                        docker  push  172.25.254.100:5000/busybox:lates

                为registry提取加密传输

                        生成认证的key和证书:

[root@docker ~]# openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout certs/test.org.key \
-addext "subjectAltName = DNS:reg.test.org" \ #指定备用名称
-x509 -days 365 -out certs/test.org.crt

                        启动registry仓库:

[root@docker ~]# docker run -d -p 443:443 --restart=always --name registry \
> --name registry -v /opt/registry:/var/lib/registry \
> -v /root/certs:/certs \
> -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
> -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/test.org.crt \
> -e REGISTRY_HTTP_TLS_KEY=/certs/test.org.key registry

                         为客户端建立证书:

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

                为仓库建立登录认证:

                        安装建立认证文件的工作包:

                        dnf install httpd-tools  -y

                        建立认证文件:

[root@docker ~]# mkdir auth
[root@docker ~]# htpasswd -Bc auth/htpasswd xiao #-B 强制使用最安全加密方式,
默认用md5加密
New password:
Re-type new password:
Adding password for user xiao

                        添加认证到registry容器中:

[root@docker ~]# docker run -d -p 443:443 --restart=always --name registry \
> --name registry -v /opt/registry:/var/lib/registry \
> -v /root/certs:/certs \
> -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
> -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/timinglee.org.crt \
> -e REGISTRY_HTTP_TLS_KEY=/certs/timinglee.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

                        登录测试:docker login reg.test.org,输入用户名和密码可以登录成功

                        为仓库开启认证后必须登录仓库才能进行镜像上传

二、构建企业私有仓库(harbor)

        1.harbor提供的主要功能和特点:

                基于角色的控制访问,即可以为不同的用户和用户组分配不同的权限来增强安全性

                镜像复制,支持在不同的harbor实例之间复制镜像

                图形化用户界面,提供直观的web界面,便于管理镜像仓库

                审计日志,记录了对镜像仓库的各种操作

                垃圾回收,可以清理不再使用的镜像节省存储空间

        2.部署harbor: 

[root@docker ~]# tar zxf harbor-offline-installer-v2.5.4.tgz
[root@docker ~]# ls
anaconda-ks.cfg certs harbor-offline-installer-v2.5.4.tgz
auth harbor
[root@docker ~]# cd harbor/
[root@docker harbor]# cp harbor.yml.tmpl harbor.yml
[root@docker harbor]# vim harbor.yml

hostname: reg.test.org
certificate: /data/certs/test.org.crt
private_key: /data/certs/test.org.key
harbor_admin_password: xiao

        ./install.sh --with-chartmuseum

        管理harbor仓库

                docker compose stop

                docker compose up -d

        

                上传镜像:docker login reg.test.org,输入用户名和密码即可登录成功

[root@docker harbor]# docker tag busybox:latest
reg.test.org/test/busybox:latest
[root@docker harbor]# docker push reg.test.org/test/busybox:latest

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

挑战项目 --- 微服务编程测评系统(在线OJ系统)

一、前言 1.为什么要做项目 面试官要问项目,考察你到底是理论派还是实战派? 1.希望从你的项目中看到你的真实能力和对知识的灵活运用。 2.展示你在面对问题和需求时的思考方式及解决问题的能力。 3.面试官会就你项目提出一些问题,或扩展需求…

Python 与 PostgreSQL 集成:深入 psycopg2 的应用与实践

title: Python 与 PostgreSQL 集成:深入 psycopg2 的应用与实践 date: 2025/2/4 updated: 2025/2/4 author: cmdragon excerpt: PostgreSQL 作为开源关系型数据库的佼佼者,因其强大的功能与性能被广泛应用于各种项目中。而 Python 则因其简洁易用的语法、丰富的库和强大的…

计算机从何而来?计算技术将向何处发展?

计算机的前生:机械计算工具的演进 算盘是计算机的起点,它其实是一台“机械式半自动化运算器”。打算盘的“口诀”其实就是它的编程语言,算盘珠就是它的存储器。 第二阶段是可以做四则运算的加法器、乘法器。1642年,法国数学家帕斯…

【Blazor学习笔记】.NET Blazor学习笔记

我是大标题 我学习Blazor的顺序是基于Blazor University,然后实际内容不完全基于它,因为它的例子还是基于.NET Core 3.1做的,距离现在很遥远了。 截至本文撰写的时间,2025年,最新的.NET是.NET9了都,可能1…

MapReduce分区

目录 1. MapReduce分区1.1 哈希分区1.2 自定义分区 2. 成绩分组2.1 Map2.2 Partition2.3 Reduce 3. 代码和结果3.1 pom.xml中依赖配置3.2 工具类util3.3 GroupScores3.4 结果 参考 本文引用的Apache Hadoop源代码基于Apache许可证 2.0,详情请参阅 Apache许可证2.0。…

重生之我在异世界学编程之C语言:深入指针篇(上)

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文(1)内置数…

deep generative model stanford lecture note3 --- latent variable

1 Introduction 自回归模型随着gpt的出现取得很大的成功,还是有很多工程上的问题并不是很适合使用自回归模型: 1)自回归需要的算力太大,满足不了实时性要求:例如在自动驾驶的轨迹预测任务中,如果要用纯自回…

STM32_SD卡的SDIO通信_DMA读写

本篇,将使用CubeMXKeil,创建一个SD卡的DMA读写工程。 目录 一、简述 二、CubeMX 配置 SDIO DMA 三、Keil 编辑代码 四、实验效果 实现效果,如下图: 一、简述 上篇已简单介绍了SD、SDIO,本篇不再啰嗦,…

互联网行业常用12个数据分析指标和八大模型

本文目录 前言 一、互联网线上业务数据分析的12个指标 1. 用户数据(4个) (1) 存量(DAU/MAU) (2) 新增用户 (3) 健康程度(留存率) (4) 渠道来源 2. 用户行为数据(4个) (1) 次数/频率…

【学术投稿-2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)】从计算机基础到HTML开发:Web开发的第一步

会议官网:www.acvra.org 简介 2025年计算机视觉研究进展与应用(ACVRA 2025)将于2025年2月28-3月2日在中国广州召开,将汇聚世界各地的顶尖学者、研究人员和行业专家,聚焦计算机视觉领域的最新研究动态与应用成就。本次…

【Unity踩坑】Unity项目管理员权限问题(Unity is running as administrator )

问题描述: 使用Unity Hub打开或新建项目时会有下面的提示。 解决方法: 打开“本地安全策略”: 在Windows搜索栏中输入secpol.msc并回车,或者从“运行”对话框(Win R,然后输入secpol.msc)启…

开发板上Qt运行的环境变量的三条设置语句的详解

在终端中运行下面三句命令用于配置开发板上Qt运行的环境变量: export QT_QPA_GENERIC_PLUGINStslib:/dev/input/event1 export QT_QPA_PLATFORMlinuxfb:fb/dev/fb0 export QT_QPA_FONTDIR/usr/lib/fonts/设置成功后可以用下面的语句检查设置成功没有 echo $QT_QPA…

【PyQt】pyqt小案例实现简易文本编辑器

pyqt小案例实现简易文本编辑器 分析 实现了一个简单的文本编辑器,使用PyQt5框架构建。以下是代码的主要功能和特点: 主窗口类 (MyWindow): 继承自 QWidget 类。使用 .ui 文件加载用户界面布局。设置窗口标题、状态栏消息等。创建菜单栏及其子菜单项&…

Java 数据库连接池:HikariCP 与 Druid 的对比

Java 数据库连接池:HikariCP 与 Druid 的对比 数据库连接池:HikariCP 1. 卓越的性能表现 HikariCP 在数据库连接池领域以其卓越的性能脱颖而出。 其字节码经过精心优化,减少了不必要的开销,使得连接获取和释放的速度极快。 在…

PHP实现混合加密方式,提高加密的安全性(代码解密)

代码1&#xff1a; <?php // 需要加密的内容 $plaintext 授权服务器拒绝连接;// 1. AES加密部分 $aesKey openssl_random_pseudo_bytes(32); // 生成256位AES密钥 $iv openssl_random_pseudo_bytes(16); // 生成128位IV// AES加密&#xff08;CBC模式&#xff09…

Turing Complete-3位解码器

要求如下&#xff1a; 就是搭建一个3-8译码器 思路一&#xff1a; 使用四种判断来解决问题。 判断一&#xff1a;3个输入中是否有0个绿色。 解决办法&#xff1a;三个输入通过三输入或门再取反。 判断二&#xff1a;3个输入中是否有1个绿色&#xff0c;并确定是输入1、输入…

我主编的电子技术实验手册(24)——RL并联电路

本专栏是笔者主编教材&#xff08;图0所示&#xff09;的电子版&#xff0c;依托简易的元器件和仪表安排了30多个实验&#xff0c;主要面向经费不太充足的中高职院校。每个实验都安排了必不可少的【预习知识】&#xff0c;精心设计的【实验步骤】&#xff0c;全面丰富的【思考习…

手写MVVM框架-模板渲染1

虚拟dom创建好了&#xff0c;依赖也收集好了&#xff0c;这个时候就该去渲染dom了&#xff0c;把页面上的 { {name}} 渲染成具体的值。 渲染之前我们给原型上添加一个render方法 //代码在src/core/render.jsexport function renderMixin(MiniVue) {MiniVue.prototype.$render …

人类心智逆向工程:AGI的认知科学基础

文章目录 引言:为何需要逆向工程人类心智?一、逆向工程的定义与目标1.1 什么是逆向工程?1.2 AGI逆向工程的核心目标二、认知科学的四大支柱与AGI2.1 神经科学:大脑的硬件解剖2.2 心理学:心智的行为建模2.3 语言学:符号与意义的桥梁2.4 哲学:意识与自我模型的争议三、逆向…

【C语言篇】“三子棋”

一、游戏介绍 三子棋&#xff0c;英文名为 Tic - Tac - Toe&#xff0c;是一款简单而经典的棋类游戏。游戏在一个 33 的棋盘上进行&#xff0c;两名玩家轮流在棋盘的空位上放置自己的棋子&#xff08;通常用 * 和 # 表示&#xff09;&#xff0c;率先在横、竖或斜方向上连成三个…