你敢信?Docker竟然把我操作系统磁盘空间干满了
你敢信?Docker竟然把我操作系统磁盘空间干满了起因今天是我们发版的日子,大家都在如火如荼的进行发版前的准备工作。下午15:00我们需要给后端程序打包Docker镜像,通过Gitlab流水线查看单元测试一直出现错误(单元测试需要连接Docker环境启动临时数据库用于测试)。 排查原因奇了怪,前几天一直都好好的,难道是IT部门又改了网络配置?导致端口无法联调了?(之前出现过,第一反应怀疑IT部门),经过排查网络环境是通的。 突然同事灵光乍现说会不会是磁盘导致的,然后就去排查Gitlab流水线所在机器的磁盘空间。 不查不知道,一查吓一跳,系统盘根目录全被Docker干完了,直接占用100%。 到底是谁占用的空间知道是Docker 占用的空间,但是不知道是那个环境占用的。到底是本地镜像太多了?还是容器太久没释放了? 通过度娘和问AI得到查询Docker磁盘占用命令: 123456789root@template:# docker system df --helpUsage: docker system df [OPTIONS]Show docker disk...
完全免费的P2P异地组网工具
VNT介绍将异地组网变成一个简单的事,轻松应对自建内网服务、联机游戏、点对点&网对网等场景 特点 高性能: 使用rust开发,内存和CPU占用率低,速度快 跨平台: 支持Windows/MacOS/Linux/Android 和WireGuard互通: 能使用WireGuard接入VNT网络,iOS可以使用这种方式接入 穿透多层NAT: 多种打洞策略,轻松穿透锥形网络,遇到对称网络也有一战之力 应对运营商QOS: 多通道UDP,能有效减缓UDP QOS 支持UDP/TCP/WebSocket等协议: 遭遇UDP丢包严重的时候,总有一个协议适合你 ipv4/ipv6双协议栈: 可以使用ipv6连接网络 域名解析优化: 可以利用txt记录解析动态公网IP、动态公网端口,家庭宽带也能轻松自建服务器 安全: 支持AES-GCM、CHACHA20-POLY1305等多种加密算法,端到端加密保证数据安全 优化广播: 自适应的点对点广播,降低延迟的同时减少服务器的压力,适合广播/组播游戏 数据压缩:...
Ceph 的 rbd 容量统计
Ceph 的 rbd 一直有个问题就是无法清楚的知道这个分配的空间里面到底使用了多少,使用 rbd info 命令查询出来的容量是预分配的总容量而非实际使用容量。在 Jewel 版中提供了一个新的接口去查询,对于老版本来说可能同样有这个需求,本篇将详细介绍如何解决这个问题。 目前已知的有三种查询方法: 使用 rbd du 查询(Jewel 版才支持) 使用 rbd diff 根据对象统计的方法进行统计 方法一:使用 rbd du 查询此命令在 Jewel 版中可用。 123root@mon:~# rbd du rbd/mysql-imgNAME PROVISIONED USED test 52.8047M 0 不过需要注意,执行此命令要求开启 rbd image 的如下属性: 1layering, exclusive-lock, object-map, fast-diff 具体使用可参考 这篇文章 。 方法二:使用 rbd diff12root@mon:~# rbd diff rbd/mysql-img | awk '{ SUM...
使用python-docx-template渲染word文档
使用python-docx-template渲染word文档快速开始To install using pip: 1pip install docxtpl or using conda: 1conda install docxtpl --channel conda-forge Usage: 123456from docxtpl import DocxTemplatedoc = DocxTemplate("my_word_template.docx")context = { 'company_name' : "World company"...
Golang 序列化和反序列化
序列化和反序列化Go 语言中,序列化和反序列化是将数据结构转换为字节流(序列化)以及将字节流转换回数据结构(反序列化)的过程。 Go 提供了多种方式来实现序列化和反序列化,常见的方式包括使用 encoding/json、encoding/gob、encoding/xml 等包。 以下是几种常见的序列化和反序列化方法: encoding/jsonJSON 是一种常用的数据交换格式,Go 提供了 encoding/json 包来处理 JSON 数据。 序列化(结构体 -> JSON)123456789101112131415161718192021package mainimport ( "encoding/json" "fmt")type Person struct { Name string `json:"name"` Age int `json:"age"`}func main() { p := Person{Name:...
搭建异地组网
前提需要公网服务器做中转。 服务端 使用Docker部署 docker-compose1234567891011121314151617181920212223242526272829303132333435363738394041services: wireguard: image: linuxserver/wireguard:latest container_name: wireguard cap_add: - NET_ADMIN volumes: - ./config:/config ports: - "5000:5000" - "51820:51820/udp" restart: unless-stopped wireguard-ui: image: ngoduykhanh/wireguard-ui:latest container_name: wireguard-ui depends_on: - wireguard ...
自定义ubuntu-22.04 ISO
自定义ubuntu-22.04 ISO构建条件 一个运行 Ubuntu 的设备(虚拟机也是可以的,但不推荐 WSL1/2,因为 WSL2 经过实际测试会出现一些问题)。 确保已经安装 xorriso、vim、wget、7zip软件包。 1apt install -y 7zip wget xorriso 打开终端。 全程需要 root 权限,请输入 sudo -s 进入 root 权限。 构建步骤下载 ISO从 Ubuntu ISO 下载页面下载版本为22.04的 Ubuntu 服务器映像 (ISO)。 我下载的镜像是ubuntu-22.04-live-server-amd64.iso 提取 ISO17z -y x ubuntu-22.04-live-server-amd64.iso -ocustom 注意!在 7z 命令中,没有空格。-o 引导文件移动引导文件到上级目录 1mv '[BOOT]' ../BOOT 生成新的ISO时,会生成新的引导文件 修改 GRUB1vim...
Nginx配置使用环境变量
在使用docker-compose建立nginx时,使用环境变量的方法在使用docker-compose部署nginx时,我们将解释如何在conf文件中使用环境变量的方法。请注意,由于不同于1.19版本之前和之后的nginx版本有所不同,请注意这一点。 使用最新版本的nginx(1.19或更高)您可以使用官方支持的方法来自1.19版本开始。以以下docker-compose.yml为例。 1234567891011version: "3"services: nginx_service: container_name: nginx image: nginx:1.19-alpine volumes: - ./templates:/etc/nginx/templates environment: - PORT=8080 ports: -...
Cubic(Custom Ubuntu ISO Creator)
Cubic简介Cubic(Custom Ubuntu ISO Creator)是一个用于创建自定义 Ubuntu ISO 的工具,它提供了一个图形用户界面,使得用户可以更方便地修改和定制 ISO 文件。 Cubic in Launchpad github.com/PJ-Singh-001/Cubic) Cubic 之所以能够将安装后的软件直接打包进去,主要是因为它使用了以下几个关键技术和步骤: 1. 基于现有的文件系统Cubic 允许用户从现有的 Ubuntu ISO 文件中提取文件系统,并在此基础上进行修改。用户可以在一个虚拟环境中运行和测试修改,这样可以确保所做的更改是有效的。 2. 使用 SquashFSCubic 使用 SquashFS 文件系统来压缩和打包文件。SquashFS 是一种只读的压缩文件系统,适合用于嵌入式系统和 Live CD。Cubic 可以将用户安装的软件和其他文件打包到 SquashFS 中,从而在创建的 ISO 中包含这些软件。 3. 自动处理依赖关系Cubic 可以自动处理软件包的依赖关系。当用户在 Cubic...
Tap-Windows install
什么是 TAP-Windows 适配器 TAP-Windows 适配器在 Windows 操作系统上提供虚拟 TAP 设备功能,VPN 软件需要它才能运行。 TAP 设备是完全由软件支持的虚拟网络内核设备,不受硬件网络适配器的支持。 TAP 驱动程序 用于 TAP 设备工作,它们设计为支持以太网隧道的低级内核。 tap-windows6:Windows TAP 驱动程序 什么是 TAP-Windows 适配器 v9?我在哪里下载它? 安装OpenVPN releases Windows下的驱动均通过签名证书来确认其安全性,首次安装时,因为系统没有存放驱动的可信证书,所以会弹出提示。而当二次安装时,因为之前系统已保存其证书,所以就不会弹出提示。 以下方法使用 tap-windows-9.21.2.exe(一键包) 和 tap-windows-9.21.2.zip(手动包) 为例 未安装过Tap适配器的朋友下载驱动压缩包 下载地址 ,解压(压缩包内i386对应32位系统,amd64对应64位系统) ps...