docker registry 仓库加密

news/2024/9/17 7:17:43/ 标签: docker, 容器, 运维, 安全

docker_registry__0">docker registry 仓库加密

1、背景

​ 公司一直用的镜像仓库是docker registry,但是有个安全问题,就是仓库从web ui的浏览到镜像的拉取都是可以直接使用的,还是放到了公网上,只需要知道你的域名那就是畅通无阻了,可以怎么方便怎么来但是这也太方便了,项目是docker跑的微服务,镜像一拉代码直接拿到手 ,前两天还看到个黑客推了个镜像上去,不能在耽误了,赶紧收拾一下。

2、问题解决

​ 在网上看了一些帖子是在仓库容器运行时加一些参数,刚测试的时候是可以的,后面重启了两次容器之后就突然不行了,这里就把配置贴一下,有需求可以搞一下,用的docker-compose

version: '3.1'
services:registry:image: registry:2restart: alwayscontainer_name: registry-srvports:- 5000:5000volumes:- /new_mount/docker/registry:/var/lib/registry- /home/app/registry/auth:/authenvironment:REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswdREGISTRY_AUTH: htpasswdREGISTRY_AUTH_HTPASSWD_REALM: "Registry Realm"networks:- docker_defaultregistry-ui:image: joxit/docker-registry-ui:staticrestart: alwayscontainer_name: registry-uiports:- 18080:80environment:- REGISTRY_URL=http://registry-srv:5000- DELETE_IMAGES=truenetworks:- docker_default
networks:docker_default:external: true

​ registry-ui镜像默认是跑的80,改了一下映射端口,前端使用nginx代理的也是跑的容器,请求头主机配置注释掉了,一打开就报错无法验证sha,这个可以试试怎么回事,我感觉是因为换过仓库的事,htpasswd文件生成可以去网上找一下很多,下面是前端代理的配置。

server {listen       80;listen       8054;server_name  registry.xxx.com;return 301 https://$server_name$request_uri;
}
server {server_name  registry.xxx.com;include /etc/nginx/conf.d/include/ssl/oa-ssl;location / {proxy_pass http://172.26.28.122:18080/;add_header Access-Control-Allow-Origin *;#proxy_set_header Host $host;proxy_set_header X-Real-Ip $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;}location /v2/ {proxy_pass http://172.26.28.122:5000;add_header Access-Control-Allow-Origin *;#proxy_set_header Host $host;proxy_set_header X-Real-Ip $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;}}

​ 按我的理解来说上面的配置是可以实现仓库加密的,但还是无法验证通过,我觉的是nginx代理的问题,加上容器是走了两层代理,可能是无法携带验证信息了,有空在研究。

​ 天无绝人之路,找到个其他的方法,直接在前端代理添加验证配置,如果是在‘/’匹配规则添加的话他只能验证web ui的访问,对镜像的推拉控制是没有用的,必须要把配置放到/v2/这个匹配规则里面,控制后端接口的访问规则才行,具体原理还不知道怎么回事,先实现了再说。这里放了之后compose文件的加密就不用加。

    environment:REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswdREGISTRY_AUTH: htpasswdREGISTRY_AUTH_HTPASSWD_REALM: "Registry Realm"#上面这几行删掉就行
    location /v2/ {stub_status;auth_basic "Auth access Blog Input your Passwd!";auth_basic_user_file /etc/nginx/conf.d/htpasswd/docker.conf/htpasswd;proxy_pass http://172.26.28.122:5000;add_header Access-Control-Allow-Origin *;#proxy_set_header Host $host;proxy_set_header X-Real-Ip $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;}

这个破问题还搞了三天


http://www.ppmy.cn/news/1522016.html

相关文章

Python 数据分析— Pandas 基本操作(上)

文章目录 学习内容:一、Series 创建及操作二、DataFram 的创建与操作三、Pandas 的读写操作四、选择指定行列数据 学习内容: 一、Series 创建及操作 ** Series : Pandas 的一种数据结构形式,可理解为含有索引的一维数组。** **(…

数据分析-13-时间序列异常值检测的类型及常见的检测方法

参考时间序列异常值的分类及检测 参考异常值数据预警分析 1 时间序列异常的类型 时间序列异常检测是数据处理和分析的重要环节,广泛应用于量化交易、网络安全检测、自动驾驶汽车和大型工业设备日常维护等领域。在时间序列数据中,异常通常指的是与正常数据模式显著不同的数据…

西方社会学理论教程(侯均生)笔记

西方社会学理论 导言 一、学习《西方社会学理论》的目的 通过学习社会学发展史上各个思想名家的研究方法和社会理论,在自觉模仿和实践的基础上,形成自己看待社会现象和社会问题的思维方式和理论视角。 二、社会学发展史 (一)古…

【架构-29】RPC

RPC(Remote Procedure Call,远程过程调用)框架是一种用于实现分布式系统中不同节点之间通信和调用的技术框架。 一、为什么需要 RPC? 实现分布式系统 在现代的软件应用中,尤其是大规模的企业级应用和互联网服务&…

设计模式学习-简单的命令模式例子

上一章节介绍过了命令模式,这一篇文章就简单的做一个小案例来巩固学习 搭建场景 简单的搭建一个场景就行 ,随便准备一个物体放在场景中位置Reset一下即可。 代码编写 定义接口(或者抽象类)ICommand 用来规范Command的行为。注意…

Spring及Springboot事件机制详解

程序设计的所有原则和方法论都是追求一件事——简单——功能简单、依赖简单、修改简单、理解简单。因为只有简单才好用,简单才好维护。因此,不应该以评论艺术品的眼光来评价程序设计是否优秀,程序设计的艺术不在于有多复杂多深沉,…

idea配置svn发现安装的svn中的bin目录下没有svn.exe文件

问题描述 使用idea配置svn时,发现安装的svn没有svn.exe文件 解决方法 1、双击svn安装包,找到【modify】 2、默认安装时,没有安装command line client tools,里面是有svn.exe 3、选择will be installed on local hard drive 4、…

x264 编码器 AArch64汇编系列:deblock 去块滤波相关汇编函数

deblock 在x264_deblock_init函数中定义各种 deblock 实现的方法: 以亮度分量垂直方向滤波为例 c 语言实现亮度分量垂直滤波函数:deblock_v_luma_cstatic ALWAYS_INLINE void deblock_edge_luma_c( pixel *pix, intptr_t xstride, int alpha

【个人笔记】VCS工具与命令

Title:VCS工具学习 一 介绍 是什么? VCS (Verilog Compiler Simulator) 是synopsys的verilog 仿真软件,竞品有Mentor公司的Modelsim、Cadence公司的NC-Verilog、Verilog—XL. VCS能够 分析、编译 HDL的design code,同时内置了 仿…

笔记本电脑在跑模型或日常使用中突然白屏的解决办法

文章目录 前言解决方案总结 前言 这段时间我注意到在跑模型或是加载一些大文件的时候,电脑经常会突然白屏,这种问题在日常生活中也时常发生,下面会提供快速有效的解决方法,希望能对大家有所帮助。 解决方案 按快捷键 C t r l A…

WPF MVVM如何在ViewModel直接操作控件对象

早些年在WPF中使用COM组件时,需要在ViewModel中操作COM组件中的控件对象,但是这个控件对象又不支持绑定, 后面的解决办法是在窗口加载时,将控件对象以参数传递到Loaded事件的处理命令中,然后将这个对象记录下来&#…

51单片机-第十二节-LCD1602液晶显示屏

一、LCD1602介绍: LCD1602是一种字符型液晶显示屏,可以显示ASCII码的标准字符和其他的内置特殊字符。 显示容量:16*2个字符,每个字符为5*7点阵。 二、引脚及应用电路: 其中:D0-7这8位数据是接在P0引脚上…

vim 快捷命令

在 Vim 中,进入末行模式的方法如下: 1. 按下 Esc 键,进入命令模式。 2. 输入 :,进入末行模式。 在末行模式下,你可以输入 Vim 命令,例如 q 强制退出 Vim,w 保存文件,r 读取文件等。…

数字人模型像素流送实时渲染网页手机平板用语音交互

随着AI的出圈,数字人结合大语言模型也迎来了春天,市场上涌现了越来越多的数字人服务,深耕于不同的实际使用场景。点量小芹在和一些数字人厂家交流的过程中发现,很多厂家对于数字人如何更好地在网页、手机平板等移动端使用&#xf…

Java中优先队列API

Java中的优先队列(PriorityQueue)是一个基于堆实现的无界队列,优先队列中的元素按照自然顺序或者通过提供的比较器排序。 1. 构造方法 PriorityQueue(): 创建一个默认初始容量为11的空优先队列,并根据其元素的自然顺序对其进行排…

HTML 列表

列表是网页中最常用的一种数据排列方式 在HTML中,列表共分为三种:有序列表、无序列表和定义列表。在有序列表中,列表项之间有先后顺序之分。在无序列表中,列表项之间是没有先后顺序之分的。而定义列表是一组带有特殊含义的列表&a…

PMP--谋定而后动

文章目录 技巧一模二模三模9.资源管理--问题解决--谋定而后动14.敏捷–人员–教练/项目经理–仆人式领导–职责–核心工作–消除障碍;–作用–促进合作(题干关键词 “促进合作、清除障碍、指导团队”。):148、 [单选] 在评估当前冲…

Apache Tomcat 6.0.45 下载、安装和配置教程

文章目录 序言下载安装配置 序言 安装前配置好jdk环境。 下载 百度网盘: 链接:https://pan.baidu.com/s/1ZWyKoNe0K7S748BntE48mw 提取码:6666 安装 1,双击图标,启动程序 2,单击“Next”按钮 3&…

集成电路学习:什么是RTC实时时钟

一、RTC:实时时钟 RTC,即实时时钟(Real-Time Clock),是一种能够在设备中持续运行并准确记录时间的电子组件。它广泛应用于计算机、手机、嵌入式系统、智能家居设备等多种场合,为这些设备提供精确的时间基准…

个股场外期权的行权时间是什么时候?

今天带你了解个股场外期权的行权时间是什么时候?场外个股期权的行权日并没有一个固定的日期,它主要取决于期权合约的具体条款和规定。 个股场外期权 个股场外期权是指在场外交易市场进行的、以单个股票为标的资产的期权合约。这种期权与在交易所交易的…