关于Docker 29之后的镜像存储配置的变更
上周五晚上我正在撸代码,突然收到疯狂报警,服务器 / 分区使用率 92%!”。 登录服务器一看,根目录确实快满了,但 /data(挂载在 vdb 上)还有大把空闲。但是我早就把 Docker 的 data-root 迁到 vdb 上了,怎么系统盘还是被撑爆了? df -h 看了一眼,overlay 挂载点确实显示在 vdb 上,空间还很充裕。但 du -sh / 一查,根目录下 /var/lib/containerd 赫然占了 24GB! overlay挂载目录和实际存储目录不在同一个地方,这什么情况,之前的服务器都没有出现过这个情况。 一、问题检查 # 明明设了 data-root 到 /data/docker $ docker info | grep "Docker Root Dir"..
更多

使用 Cloudflare Workers自建完全免费Docker镜像服务
使用Cloudflare Workers自建完全免费Docker镜像本方法 不需要服务器 也不需要域名自月初docker镜像被封禁之后,国内的镜像源也同步都停掉了。国内服务器拉取镜像变得完全不方便。目前有几种方法挂代理, 给配置文件增加代理proxy配置;自建转发服务器,配置文件增加registry-mirrors镜像源:自建服务器,给nginx配置反向代理, 如crproxy;蹭Cloudflare Workers免费资源,手动写请求转发代码,如cloudflare-docker-proxy最终我选择了Cloudflare Workers方式,因为这个方法完全不需要服务器,甚至也不需要域名,只需要注册一个cloudflare帐号就能用。我真的服了cloudflare也是太大方了,真的什么都给大家免费用。基本原..
更多

ChatGPT Plus 单账号共享合租服务
Foreword 单个ChatGPT Plus 账号共享合租,各自会话独立分割,就好像一个人使用一样,方便给一个组织或者多人使用。 CWS 源于chatgpt-web-share项目,适用于个人、组织或团队的 ChatGPT 共享方案。共享一个 ChatGPT Plus 账号给多人使用,提供完善的管理和限制功能。 https://github.com/chatpire/chatgpt-web-share 部署 新建目录 cd ~ mkdir cws && cd cws mkdir -p data/config 配置初始密码 export MONGODB_PASSWORD=password # MongoDB 密码 export INITIAL_ADMIN_PASSW..
更多一日一技:如何安全运行别人上传的Python代码?
写后端的同学,有时候需要在网站上实现一个功能,让用户上传或者编写自己的Python代码。后端再运行这些代码。涉及到用户自己上传代码,我们第一个想到的问题,就是如何避免用户编写危险命令。如果用户的代码里面涉及到下面两行,在不做任何安全过滤的情况下,就会导致服务器的Home文件夹被清空。12import osos.system('rm -rf ~/*')有人想的比较简单,直接判断用户的代码里面有没有os.system、exec、subprocess……这些危险关键词不就可以了吗?这种想法乍看起来没有问题,但细想下,就会发现非常天真。如果用户的代码像下面这样写,你又要如何应对?123456789import requestscode = requests.get('https://www.kingname.info/..
更多Podman 容器管理工具
介绍Podman是一个用于在Linux系统上构建、管理和运行OCI标准容器的CLI工具,是Docker的直接替代品。 由红帽主导,与开源社区一起开发。在RHEL8开始预装并替代Docker。命令上与Docker并无区别。 主要特点是不需要守护进程,可以支持非root用户运行容器,提高了安全性和可访问性。 本教程也适用于RHEL其他衍生版本,如Rocky Linux。 安装RHEL8-9安装1234567891011121314dnf install podman podman-docker# 安装podman及docker的命令兼容程序。systemctl enable --now podman# 启动并设置开机启动。podman run hello-worlddocker run hello-world# ..
更多

Shadowsocks with v2ray-plugin for Doprax
使用Doprax搭建免费的Shadowsocks服务。有现成的V2ray for Doprax方案。但是我一直是用Shadowsocks的,也不想换客户端。而且一看v2ray,和Shadowsocks相比,真的太复杂了,配置一大堆,看了文档也非常混乱,一比较就完全放弃。于是想研究ss能不能也整一个。先说结论:使用v2ray-plugin插件将shadowsocks流量伪装成http协议,穿透Cloudflare网关,使用隧道转发到服务端。客户端使用安装了对应插件的客户端连接到服务端。并且可以支持v2ray客户端例如V2rayU连接本来想尝试使用simple-obfs,因为ios的免费客户端上基本上内置这个,后来在成功实现v2ray-plugin方式之后,又继续研究了很久,发现由于Cloudflare的影响,导致..
更多

Docker+Prometheus+Grafana监控VPS运行状态
Prometheus是一个灵活的时间序列数据库和监控系统,有多个监控组件可用。Grafana是用于展示数据的平台。一起使用即可全方位监控VPS主机运行状态。prometheus和grafana为简化安装步骤,这里直接使用docker.效果图安装首先你要安装docker/docker-compose:1234567apt -y updateapt -y install curlcurl -sSL https://get.docker.com/ | shsystemctl start dockersystemctl enable dockercurl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname..
更多

HomeLab 玩法简单分享
大学毕业之前一个冲动买了台式机,又一个冲动买了台 Linux 主机。到现在它已经运行了四年多了,简单分享下自己的玩法。 背景 毕业之前在公司附近租了房,再加上受到了网络的蛊惑,于是陷入了“买一台 NAS 来大幅提高生活质量”的念头之中。看了很多成熟的 NAS 方案(比如群辉或威联通),最后还是在高昂的价格面前望而却步。 当时的我,傻乎乎地认为品牌 NAS 的平台只是“SMB + RAID + 媒体服务器”而已,那么既然成熟的方案那么贵,为什么不搞个 Linux 自己折腾呢?脱离了平台的束缚,反而可能有更多的可能性。 最后,我决定自己买硬件搭一台 Linux 主机,做一个 HomeLab. 硬件选型 选择主机硬件的时候考虑了自己的需求,大致如下: 价格便宜:我只是个穷学生,看他们玩虚拟化的都上了 E3 E..
更多

为什么 Kubernetes 要替换 Docker
为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。Kubernetes 是今天容器编排领域的事实标准,而 Docker 从诞生之日到今天都在容器中扮演着举足轻重的地位,也都是 Kubernetes 中的默认容器引擎。然而在 2020 年 12 月,Kubernetes 社区决定着手移除仓库中 Dockershim 相关代码1,这对于 Kubernetes 和 Docker 两个社区来说都意义重大。图 1 - Dockershim相信大多数的开发者都听说过 Kubernetes 和 Docker,也知道我们可以使用 Ku..
更多由 TT-RSS 解析数据库地址失败引出的一个问题
水一篇文章,主要用来告诫自己认真看文档。🌚 背景 下午随手在树莓派上升级了一下 TT-RSS 的镜像,然后它当场爆炸,看了容器日志告诉我 PHP 无法解析数据库的域名 database.postgres. 尝试解决 进到容器里尝试手动解析一下,但是报错 nslookup: clock_gettime(MONOTONIC) failed. 用自己的另一台运行 Debian testing 的 x86 机器运行了一下,无法复现这个问题。 Google 了一下找到 Alpine 的一个 issue,简单看了一下发现是 Alpine 3.13 升级了 musl,使用了新的系统调用 clock_gettime64. 在容器里跑了下 date,结果如下: 12$ docker run --rm -it alpine..
更多