docker registry 仓库加密
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;}
这个破问题还搞了三天
相关文章:
docker registry 仓库加密
docker registry 仓库加密 1、背景 公司一直用的镜像仓库是docker registry,但是有个安全问题,就是仓库从web ui的浏览到镜像的拉取都是可以直接使用的,还是放到了公网上,只需要知道你的域名那就是畅通无阻了,可以…...
利用高德+ArcGIS优雅获取任何感兴趣的矢量边界
荷花十里,清风鉴水,明月天衣。 四时之景不同,乐亦无穷尽也。今天呢,梧桐君给大家讲解一下,如何利用高德地图,随机所欲的获取shp边界数据。 文章主要分成以下几个步骤: 首先搜索你想获取的矢量…...
炮弹【USACO】
题目背景 时/空限制:1s / 64MB 题目描述 贝茜已经精通了变成炮弹并沿着长度为 N 的数轴弹跳的艺术,数轴上的位置从左到右编号为 1,2,…,N 。 她从某个整数位置 S 开始,以 1 的起始能量向右弹跳。 如果贝茜的能量为 k ,则她将…...
python如何读取excel文件内的数据
目录 前言一、安装openpyxl二、读取Excel数据总结前言 在Python中读取Excel数据,最常用的库之一是openpyxl(用于.xlsx格式)和xlrd(尽管xlrd从版本2.0开始不再支持.xlsx,仅支持旧的.xls格式)。然而,对于大多数现代应用来说,openpyxl是一个更好的选择,因为它支持.xlsx格…...
Java项目: 基于SpringBoot+mybatis+maven+mysql教师工作量管理系统(含源码+数据库+毕业论文)
一、项目简介 本项目是一套基于SpringBootmybatismavenmysql教师工作量管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观…...
项目开发--数据库--postgresql数据库操作
背景 1、安装postgresql的基础方法 2、基本操作命令 解决方案 安装命令 在ubuntu环境当中进行安装。 sudo apt install postgresql安装完毕之后直接进行测试,如果看到如下内容则安装成功。 sudo systemctl status postgresql使用DBeaver进行连接报错ÿ…...
c语言——用一维数组输出杨辉三角形
一.代码 #include <stdio.h> int Num[100]; int Hang; int Lie; int a; int Flag; int main() {Lie 1;Hang 1;a 0;while (1) {//列1为1if (Lie 1) {Num[1] 1;Lie;}//数据存到数组里面while (Hang > Lie && Hang ! 2) { if (Hang!Lie) {Flag Num[Lie] …...
Codeforces Round 971 (Div. 4) (A~G1)
A、B题太简单,不做解释 C 对于 x y 两个方向,每一个方向至少需要 x / k 向上取整的步数,取最大值。 由于 x 方向先移动,假如 x 方向需要的步数多于 y 方向的步数,那么最后 y 方向的那一步就不需要了,答案…...
为什么构造函数不能为虚函数?为什么析构函数可以为虚函数,如果不设为虚函数可能会存在什么问题?
目录 一、为什么构造函数不能为虚函数? 二、为什么析构函数可以是虚函数?如果不设为虚函数可能会存在什么问题? 构造函数不能为虚函数,因为在构造过程中,虚函数机制尚未生效,对象还未完成构造,…...
【数据结构】单链表功能的实现
目录 1.链表的概念及结构 2.单链表功能的实现 2.1打印单链表 2.2创建节点 2.3单链表尾插 2.3单链表头插 2.5单链表尾删 2.6单链表头删 2.7单链表的查找 2.8在指定位置之前插入数据 2.9在指定位置之后插入数据 2.10删除pos节点 2.11删除pos之后的节点 2.12销毁链表…...
最新车型库大全|阿里云实现调用API接口
整体请求流程: 介绍: 本次解析通过阿里云云市场的云服务来实现查询车型库大全查询,首先需要选择一家可以提供查询的商品。 [探数API]车型库查询_API专区_云市场-阿里云 步骤1: 选择商品 如图点击免费试用,即可免费申请该接口数…...
70. 爬楼梯
70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1.1 阶 1 阶 2.2 阶 示例…...
pytorch正向传播没问题,loss.backward()使定义的神经网络中权重参数变为nan
记录一个非常坑爹的bug:loss回传导致神经网络中一个linear层的权重参数变为nan 1.首先loss值是正常数值; 2.查了好多网上的解决办法:检查原始输入神经网络数据有没有nan值,初始化权重参数,使用relu激活函数,梯度裁剪&a…...
❤《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案
《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案 文章目录 《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案1、问题一:原生开发中 request请求中返回 的数据无法 使用this传递给 data{}中怎么办?2、刚登录后如何将token信息保存…...
2024.9.6 作业
手写unique_ptr指针指针 代码: #include <iostream> #include <stdexcept>template <typename T> class unique_ptr { public:// 构造函数explicit unique_ptr(T* ptr nullptr) : m_ptr(ptr) {}// 析构函数~unique_ptr() {delete m_ptr;}// 禁…...
2024年架构设计师论文-“模型驱动架构设计方法及其应用”
论模型驱动架构设计方法及其应用 模型驱动架构设计是一种用于应用系统开发的软件设计方法,以模型构造、模型转换和精化为核心,提供了一套软件设计的指导规范。在模型驱动架构环境下,通过创建出机器可读和高度抽象的模型实现对不同问题域的描述…...
Tapd敏捷开发平台的使用心得
Tapd敏捷开发平台的使用心得 一、Tapd 简介 TAPD(Tencent Agile Product Development),腾讯敏捷产品研发平台行业领先的敏捷协作方案,贯穿敏捷产品研发生命周期的一站式服务,了解敏捷如下图 二、几个核心模块概念 需求迭代缺陷故事墙前期项目需求的管理,可以按类别建…...
远程桌面 Rust Desk 自建服务器
因为某些原因(诈骗),Rush Desk 服务已暂停国内访问,今天我们介绍如何利用自己的服务器搭建 Rust Desk 远程桌面,低延迟电脑远程手机,手机远程电脑等 一、准备工作 准备一台服务器,我用的腾讯云服务器,一年…...
开源网安引领AIGC+开发安全,智能防护铸就软件安全新高度
近日,国内网络安全领域知名媒体数说安全正式发布了《2024年中国网络安全市场100强》和《2024年中国网络安全十大创新方向》。开源网安凭借在市场表现力、资源支持力以及产品在AI方向的创新力上的优秀表现成功入选百强榜单,并被评为“AIGC开发安全”典型厂…...
树和二叉树
树 节点(Node:) 树由一系列的节点组成,每个节点可以包含数据和指向其他节点的链接。 节点通常包含一个数据元素和若干指向其他节点的指针 根节点(Root): 树的顶部节点称为根节点,…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
