MoreRSS

site iconDusays | 杜朋修改

曾任某集团酒店高级网络工程师、某大型 IT 教育网站技术运营总监。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Dusays | 杜朋的 RSS 预览

Minecraft 生存服务器来啦「1.21.8 版」

2026-01-02 00:00:00

杜老师在家用机上搭建了一个 Minecraft 游戏平台,配置为 16H32G 内存,500M 的带宽,预估支持 30 人同时在线。如果您喜欢玩我的世界,又感觉自己玩没有意思,欢迎加入我们平台,大家一起 play 一起 happy!

注意事项

  1. 本服务端仅支持 Java 版 Minecraft,内置常用插件,身份验证、领地、家设置等;

  2. 服务端目前支持 1.21.8 版本,如果您已有客户端,只需进入多人游戏,输入杜老师服务器的地址 mc.dusays.com 即可「如果连接失败可加上端口 mc.dusays.com:25565」

  3. 我们将平台设置为生存模式,容易难度,重生保留物品,并开启了防爆模式;

  4. 游戏无 GM 直接干预,没有任何隐藏收费项目;

  5. 我们本着共同游戏更多快乐原则,谢绝恶意玩家进入,请不要破坏他人的劳动成果,谢谢;

  6. 本游戏服长期有效,只要有一个人在线,游戏服就不会关闭,同时每周进行数据备份;

  7. 如有任何问题,可在评论区内留言,杜老师都会积极帮大家解决;

  8. 最终解释权归杜老师说所有。欢迎加 QQ 群 454279233。

1.21.8 客户端

如果您没有客户端,可下载杜老师整合的客户端:

下载地址

游戏截图

游戏主城截图:

生存村庄界面:

模组版本

2026 年 01 月 20 日更新:

功能 名称 版本
IA ItemsAdder 4.0.15
MOTD minimotd-bukkit 2.1.2
NPC Citizens 2.0.40-b3959
扩展 PurpurExtras 1.37.0
TAB TAB v5.4.0
世界保护 worldguard-bukkit 7.0.14-dist
全息图 DecentHolograms 2.9.9
全球市场 PlayerAuctions 1.32.1
创世神 worldedit-bukkit 7.3.17
前置 CMILib 1.5.7.4
前置 nightcore 2.11.0
前置 ProtocolLib 5.4.1-SNAPSHOT-aa4fab1
前置 Vault 1.7.3-b131
变量 PlaceholderAPI 2.11.7
基础 CMI 9.8.4.4
多世界 Multiverse-Core 4.3.1
快捷键 xShiftFCommand 1.0.0
抽奖 ExcellentCrates 6.6.1
插件管理 PlugManX 3.0.1
权限 LuckPerms-Bukkit 5.5.16
正版验证 PremiumVerify 1.0.8
每日任务 ODailyQuests 3.0.1
每日回收 UltimateShop 3.12.5
点券 PlayerPoints 3.3.3
玩家地标 PlayerWarp 2.2.1-free
登录 AuthMe 5.6.0
登录标题 AuthMeTitles 2.6.6
离线皮肤 SkinsRestorer 15.9.3
称号 PlayerTitle 4.11.2-free
签到 LiteSignIn 1.8.9.0
箱子商店 QuickShop-Hikari 6.2.0.10
经济 XConomy-Bukkit 2.26.3
菜单 DeluxeMenus 1.14.1-Release
随机传送 BetterRTP 3.6.13
领地 Residence 6.0.1.2

快速部署 Nexus Terminal 打造高颜值远程管理终端

2025-12-09 00:00:00

对于运维人员和开发者而言,一款高效、安全、易用的远程连接管理工具是日常工作的刚需。Nexus Terminal(星枢终端)作为一款现代化的Web SSH/RDP/VNC客户端,凭借高颜值界面、丰富功能和强大的安全机制,成为远程管理的优质选择。更重要的是,通过Docker可以快速部署这款工具,充分利用容器化的便捷性和环境隔离特性,让远程服务器管理效率大幅提升。本文将详细分享基于Docker部署Nexus Terminal的完整步骤,以及工具的基础使用方法,新手也能轻松上手。

一、认识Nexus Terminal,高效远程管理的利器

Nexus Terminal是专为开发者、运维人员和企业团队打造的远程连接管理工具,兼具Web端和独立桌面端应用,核心围绕高效、安全、定制化设计,相比传统远程管理工具,优势十分突出。

其核心特性涵盖连接管理、安全防护、功能拓展等多个维度,完美适配日常远程运维需求:

  1. 多协议多标签支持:同时兼容SSH/SFTP、RDP、VNC协议,多远程连接可通过标签页并行操作,告别多窗口切换的繁琐;
  2. 类VS Code编辑体验:内置Monaco Editor,支持在线编辑文件,语法高亮、智能补全一应俱全,远程修改代码/配置无需额外工具;
  3. 强大安全防护体系:集成人机验证、双因素认证(2FA),支持IP白名单/黑名单,异常访问自动封禁,还有全面的审计日志,记录所有用户行为和系统变更,满足合规审查和问题回溯需求;
  4. 轻量高效易部署:基于Node.js开发的轻量级后端,资源占用低,还支持PWA渐进式Web应用,可安装为类原生应用,支持离线使用和推送通知;
  5. 实用附加功能:内置简易Docker容器管理面板,简化DevOps流程;心跳保活机制确保连接稳定,避免超时断开;界面主题和布局可高度定制,适配不同使用习惯。

此外,Nexus Terminal还配备了实时通知系统,登录提醒、异常告警等关键事件及时推送,让运维人员随时掌握系统状态。

二、部署前准备,环境规划与检查

本次部署基于个人测试环境进行,生产环境部署需谨慎评估并做好安全加固,以下是具体的环境规划和检查步骤,确保部署过程顺利。

2.1 本地环境规划

本次实践的基础环境配置如下,核心需保证Docker和Docker Compose版本符合要求:

主机名 IP地址 操作系统版本 Docker版本 部署项目
jeven01 192.168.3.88 Ubuntu 22.04.1 LTS 27.1.1 Nexus Terminal

2.2 环境核心检查

部署前需确认Docker服务正常运行、Docker版本适配,且Docker Compose版本在2.0以上,依次执行以下命令检查:

  1. 检查Docker服务状态
1
systemctl status docker

输出结果显示Active: active (running)即为正常运行;
2. 检查Docker版本

1
docker -v
  1. 检查Docker Compose版本
1
docker compose version

若Docker未安装或版本过低,需先完成安装/升级,确保基础环境达标。

三、Docker一键部署Nexus Terminal,步骤超简单

基于Docker Compose部署Nexus Terminal,全程只需拉取镜像、配置部署文件、启动容器三步,无需复杂的环境配置,快速完成搭建。

3.1 拉取相关容器镜像

Nexus Terminal的部署需要前端、后端、远程网关和guacd四个镜像,依次执行以下命令拉取最新版本:

1
2
3
4
docker pull heavrnl/nexus-terminal-frontend:latest
docker pull heavrnl/nexus-terminal-backend:latest
docker pull heavrnl/nexus-terminal-remote-gateway:latest
docker pull guacamole/guacd:latest

3.2 创建部署目录并编写docker-compose.yaml

  1. 创建专属部署目录,并进入该目录:
1
mkdir -p /data/nexus-terminal &&  cd /data/nexus-terminal
  1. 创建并编辑docker-compose.yaml文件
1
vim docker-compose.yaml

将以下配置内容复制到文件中,注意替换其中的IP地址为自身服务器的实际IP(示例为192.168.3.88):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
services:
frontend:
image: heavrnl/nexus-terminal-frontend:latest
container_name: nexus-terminal-frontend
ports:
- "18111:80"
depends_on:
- backend
- remote-gateway
backend:
image: heavrnl/nexus-terminal-backend:latest
container_name: nexus-terminal-backend
volumes:
- ./data:/app/data
environment:
NODE_ENV: production
PORT: 3001
DEPLOYMENT_MODE: docker # local/docker
REMOTE_GATEWAY_API_BASE_LOCAL: http://192.168.3.88:9090
REMOTE_GATEWAY_API_BASE_DOCKER: http://remote-gateway:9090
REMOTE_GATEWAY_WS_URL_LOCAL: ws://192.168.3.88:8080
REMOTE_GATEWAY_WS_URL_DOCKER: ws://remote-gateway:8080
# passkey
RP_ID: "192.168.3.88"
RP_ORIGIN: "http://192.168.3.88:18111"
remote-gateway:
image: heavrnl/nexus-terminal-remote-gateway:latest
container_name: nexus-terminal-remote-gateway
environment:
GUACD_HOST: guacd
GUACD_PORT: 4822
REMOTE_GATEWAY_API_PORT: 9090
REMOTE_GATEWAY_WS_PORT: 8080
FRONTEND_URL: http://frontend
MAIN_BACKEND_URL: http://backend:3001
NODE_ENV: production
depends_on:
- guacd
- backend
guacd:
image: guacamole/guacd:latest
container_name: nexus-terminal-guacd
restart: unless-stopped

保存并退出编辑(vim中执行:wq)。

3.3 启动Nexus Terminal容器

在部署目录下执行以下命令,后台启动所有容器

1
docker compose up -d

3.4 检查容器运行状态

容器启动后,执行以下命令确认所有服务正常运行:

1
docker compose ps

若所有容器的STATUS列显示Up(guacd会显示Up (healthy)),说明部署成功,前端容器已映射18111端口,可通过该端口访问。

四、访问并初始化Nexus Terminal

部署成功后,通过浏览器即可访问Nexus Terminal,首次访问需完成管理员账号创建,步骤如下:

  1. 浏览器访问:在地址栏输入http://<服务器实际IP>:18111,例如http://192.168.3.88:18111
  2. 创建管理员账号:首次进入会显示初始设置页面,自定义输入用户名、密码,确认密码后点击「创建账号」,建议设置复杂密码,提升安全性;
  3. 首次登录:输入刚创建的账号密码,登录后进入Nexus Terminal主界面,可看到仪表盘、终端、连接管理、审计日志等功能模块。

注意:若无法访问,需检查宿主机防火墙是否放行18111端口,云服务器还需在安全组中添加18111端口的访问规则。

五、Nexus Terminal基础使用,快速上手远程管理

成功登录后,即可开始使用Nexus Terminal进行远程服务器管理,核心的添加服务器、远程登录、在线编辑文件等操作,步骤简单易懂。

5.1 添加远程服务器连接

  1. 依次点击主界面的「终端」——「连接列表」,点击「添加第一个连接」;
  2. 配置服务器基本信息:填写连接名称(可选,便于区分)、服务器IP地址,选择连接类型(SSH/RDP/VNC,默认SSH),填写对应端口;
  3. 配置认证信息:选择认证方式(密码/SSH密钥),若为密码认证,输入服务器登录用户名和密码;若为SSH密钥,上传对应密钥文件;
  4. 测试并添加:可点击「测试连接」确认服务器可达,测试成功后点击「确认添加」,连接即创建完成。

5.2 远程登录服务器

连接创建完成后,在连接列表中双击服务器名称,即可快速建立远程连接,进入终端界面,可直接执行服务器命令,操作与本地终端一致,多连接可通过标签页切换。

5.3 在线编辑远程文件

远程登录后,终端界面下方会显示服务器的文件列表,无需借助SFTP工具,直接点击文件即可在左侧编辑区域打开,支持语法高亮和智能补全,编辑完成后保存即可同步到服务器,修改配置、编写代码高效便捷。

5.4 查看审计日志,追踪操作记录

所有的操作行为都会被记录在审计日志中,点击主界面的「审计日志」,可查看SSH连接成功/失败、连接创建、设置更新等所有操作记录,支持按操作类型、时间筛选,便于问题排查和操作追溯。

六、部署总结与使用建议

通过Docker部署Nexus Terminal,充分发挥了容器化的优势:部署流程简单、环境隔离性好、后续维护便捷,无需关注复杂的依赖配置,几分钟即可完成搭建,无论是个人测试环境还是企业轻量运维场景,都非常适用。

Nexus Terminal凭借高颜值的界面、丰富的功能和强大的安全防护,完美解决了传统远程管理工具的痛点:多协议兼容满足多样化远程需求,类VS Code的编辑体验简化远程文件操作,全面的安全机制保障服务器访问安全,审计日志和通知系统让运维管理更可控。

生产环境使用建议

  1. 强化密码安全,开启双因素认证(2FA),配置IP白名单,仅允许可信IP访问;
  2. 定期备份部署目录下的data文件夹,防止数据丢失;
  3. 及时更新Nexus Terminal镜像,修复已知安全漏洞;
  4. 对18111端口做反向代理,配置HTTPS,提升传输安全性。

无论是日常的服务器远程维护、代码部署,还是团队协作的远程管理,Nexus Terminal都能成为高效的辅助工具,结合Docker的便捷部署,让远程管理工作更轻松、更安全。

DEB 和 RPM 有什么区别

2025-12-03 00:00:00

在 Linux 系统中,软件的安装和管理通常依赖于软件包(Package),而 .deb 和 .rpm 是两种最主流的软件包格式。它们分别服务于不同的 Linux 发行版生态系统,不仅文件后缀不同,所使用的工具链、依赖管理方式、系统集成方式等方面也各有特点。本文将从多个角度对这两种格式进行深入解析。

基础定义

格式 全称 主要用途
.deb Debian Binary Package 用于 Debian 及其衍生系统
.rpm RPM Package Manager 用于 Red Hat 等及其衍生系统

软件包管理工具的不同

操作 .deb 系列 .rpm 系列
低层包管理器 dpkg rpm
高层包管理器 apt、apt-get、gdebi yum、dnf、zypper
自动解决依赖 apt 系列具备强大的自动依赖解决能力 yum / dnf 支持自动依赖解析
安装命令示例 sudo apt install ./xxx.deb ; sudo dpkg -i xxx.deb sudo yum install xxx.rpm ; sudo rpm -ivh xxx.rpm

软件包内部结构差异

尽管 .deb 和 .rpm 都包含软件的可执行文件、元信息、安装脚本等,但它们的打包方式和控制文件结构并不相同:

1
2
3
4
5
6
7
8
9
10
11
.deb 软件包结构:
.deb 文件实际上是一个 ar 档案,包含:
├── control.tar.gz → 控制信息(如版本、依赖、脚本)
├── data.tar.gz → 软件内容(实际文件)
├── debian-binary → 版本信息(固定为2.0)
.rpm 软件包结构:
.rpm 文件是经过 CPIO 和 RPM 格式封装的结构,包含:
├── 包描述信息(名称、版本、架构等)
├── 安装/卸载脚本(%pre、%post、%preun、%postun)
├── 文件列表及路径
├── 安装数据(通过 CPIO 解包)

平台兼容性

.deb 和 .rpm 是彼此不兼容的,不同包管理器和元数据结构使它们无法直接在非原生系统中使用。但可以通过跨格式转换工具实现临时兼容;

注意:转换后的包可能在目标系统中运行异常,特别是涉及依赖项或系统级服务时。

系统集成差异

.deb 系列操作系统默认使用 systemd 或 sysvinit 管理服务,依赖包也多以 .deb 分发。

.rpm 系统通常更加倾向于企业级应用部署,具备更强的 SELinux、Firewalld 集成与限制管理。

此外,.rpm 包更早支持数字签名验证(GPG 签名),而 .deb 也已在 apt 中引入类似机制。

使用场景与生态对比

项目 .deb 系列(如 Ubuntu、麒麟桌面、统信桌面) .rpm 系列(如 openEuler、麒麟服务器、统信服务器)
使用人群 个人用户、国产桌面操作系统用户居多 企业级、服务器、运维自动化场景多见
系统更新频率 快,偏向社区活跃发展 稳定,重视长期支持(LTS)版本
支持工具 apt, dpkg yum, dnf, rpm, zypper

ima 任务模式邀请码分享

2025-11-27 00:00:00

在当今快节奏的工作中,高效的信息处理与内容创作工具越来越受到人们的青睐。腾讯推出的 ima,是一款以知识库为核心,面向学习与办公场景的 AI 智能工作台,致力于帮助用户提升信息获取效率并大幅提高内容创作的效率与质量。

ima 工作台简介

高效获取信息:无论是全网搜索还是基于个人知识库,ima 都能快速定位精准答案;

智能解读内容:支持对文档、网页、图片、音视频等多种格式内容进行 AI 解读与总结;

便捷知识沉淀:可将公众号文章、网页、笔记、文档等一键加入个人或共享知识库,形成自己的知识体系;

辅助内容创作:提供 AI 写作、扩写、缩写、翻译、脑图生成等能力,助力用户高效产出高质量内容。

任务模式

智能任务生成

用户仅需输入主题描述,或通过 @ 指定个人/共享知识库,ima 就能基于你的需求与知识储备,智能生成结构化内容,如行业报告、项目总结、分析文档等。

支持生成 播客音频内容,可选择对谈人数、音色,模拟真实对话场景,适用于知识分享、培训、访谈类内容创作。

结构化输出

生成的报告自带 目录导航,目录条目与报告内容层级一一对应,点击即可快速跳转,便于阅读与分享。

播客内容支持 音频下载,便于后续传播与再加工。

个性化延续

系统会自动记录用户上次使用的音色与对谈人数设置,下次使用时无需重复配置,提升连续创作体验。

任务模式体验申请机制

任务模式目前为邀请制体验功能,并非所有用户默认开放。用户需要通过申请获得体验资格,体验期内每日有使用次数限制(通常为每日 5 次,次数每日重置)。

邀请分享

由于任务模式目前处于 逐步开放体验阶段,并非所有用户默认可用,因此官方设置了 邀请码分享机制,以便于感兴趣的用户通过官方渠道或已体验用户获取试用资格。

若你想体验 ima 任务模式,可按如下步骤申请:

第一步:确保你的 ima 客户端为最新版本

手机端(iOS/Android/鸿蒙)或电脑端(Windows/Mac)的 ima 版本需 升级至 2.0 或更高版本。

第二步:进入任务模式入口

在 ima 对话界面中,切换至「任务模式」(通常在模式选择区或功能入口中可以找到)。

第三步:点击“申请体验”

在任务模式页面,会有 “申请体验”按钮,点击后提交申请。

第四步:等待官方审核与邀请码发放

任务模式体验资格将 根据申请顺序分批发放,通过审核后,你将在 ima 端内收到 站内信通知,内含你的 体验资格及可能的邀请码(如有)。

第五步:开始使用

获得体验资格后,每个账号 每日最多可体验 5 次任务模式功能,系统可能会根据实际运营情况调整使用次数。

本站分享

杜老师获取了 3 个 任务模式体验资格,可通过如下方式使用:

  1. 在本站评论去留言,留下邮箱接收;

  2. 本站在看到留言后,会尽快发送邀请码到你的邮箱;

  3. 收到邀请码后,可在 ima 端内使用 “邀请码” 功能,输入邀请码即可获取体验资格。

  4. 目前剩余一个邀请码,最终解释权归杜老师说所有。

Temp Mail 兼具隐私和便捷性的最佳临时电子邮件服务

2025-11-21 00:00:00

您是否曾经需要一个快捷的电子邮件地址?比如注册游戏或网站?这时 Temp Mail 就能派上用场了!它能为您提供一个可在短时间内使用的临时电子邮件地址。

什么是临时邮件?

使用临时邮箱,您可以创建一个有效期仅为 24 小时的电子邮件地址。这意味着您无需使用真实邮箱即可注册网站或 Facebook、Twitter 等社交媒体。它非常适合保持您的收件箱整洁!

有了临时邮箱后,您就可以立即阅读收到的邮件。超级简单方便!

因此,如果您想尝试一下,只需访问 Temp Mail 并立即获取您的临时电子邮件地址!

在深入探讨最佳实践之前,让我们先来了解一下临时邮箱的各种术语。常见的名称包括一次性邮箱地址、一次性邮箱地址、10分钟邮箱地址和一次性邮箱地址。其他术语,例如虚假邮箱地址、匿名邮箱账户和别名邮箱地址,则强调了其隐私功能。此外,临时邮件和自毁邮箱地址则强调了其保护您的主邮箱免受垃圾邮件侵害的用途。这些术语都体现了增强安全性和有效管理通信的目标,并且可以互换使用。

主要特点和优势

  • 临时电子邮件地址

使用临时邮箱地址是明智之举。它能确保您真实邮箱的安全。您可以随时创建新邮箱。这样,您就可以避免收到垃圾邮件和不需要的邮件。

  • 轻松注册网站和社交媒体

使用临时邮箱注册网站和社交媒体非常方便。您只需输入临时邮箱地址即可。无需分享您的真实邮箱地址。这可以确保您的信息安全。

  • 隐私保护

您的隐私至关重要。使用临时邮箱,您的个人数据安全无虞。所有邮件将在一小时后删除。您也可以随时删除临时邮箱。这意味着没有人可以追踪您。

有关我们如何保护您的隐私的更多详细信息,请查看我们的隐私政策

使用临时邮箱是保障网络安全的好方法。立即试用!

临时邮件的理想用户

您是否曾经想在线注册某些服务,但又不想使用真实邮箱?这时,临时邮箱 就派上用场了!它非常适合那些想要保持邮箱整洁的用户。

以下是 Temp Mail 的一些理想用户:

  • 想要尝试新服务但又不想泄露个人电子邮件的人。
  • 需要注册在线资源但又想避免垃圾邮件的学生。
  • 任何重视隐私并希望保证信息安全的人。

使用临时邮件很简单,并且可以帮助您在线保持安全!

临时邮件的优点和缺点

你听说过临时邮箱吗?它是一款很酷的工具,可以为你提供一个临时的电子邮件地址。但它真的有用吗?让我们来一探究竟!

优势 缺点
保护您的隐私 可能会被某些网站屏蔽
便于使用 电子邮件可能很快就会过期
无需注册 与常规电子邮件相比功能有限

总而言之,临时邮箱有其优缺点。它在保护隐私方面做得很好,但可能并非万能。您觉得呢?

临时邮件适合您吗?

您是否曾经需要邮箱地址,但又不想使用真实邮箱?这时,Temp Mail 就派上用场了!它能为您提供一个临时邮箱地址。您可以用它来注册网站或获取验证码。但它真的适合您吗?如果您想保障网络安全并避免垃圾邮件,那么答案是肯定的!但请记住,它不适用于发送重要邮件。

使用临时电子邮件的最佳实践

临时邮箱服务对于管理在线隐私和沟通至关重要。随着垃圾邮件和数据泄露事件的增多,临时邮箱提供了一种保护个人信息的实用方法。本指南概述了有效使用临时邮箱的最佳实践,帮助您在享受其优势的同时,确保在线活动的安全性和便捷性。

1.使用临时邮件满足临时需求

临时邮箱非常适合短期用途,例如订阅新闻简报、查看一次性优惠或注册您不完全信任的网站。请避免使用临时邮箱进行长期或重要的通信,因为收件箱通常会在短时间后被删除。

2.避免使用临时邮件发送敏感信息

虽然临时邮箱可以保护您的主邮箱免受垃圾邮件的侵扰,但它并非用于处理敏感信息。请避免使用临时邮箱进行金融交易、个人通信或任何涉及敏感数据的活动。

3.定期清除浏览器缓存

使用临时邮箱时,建议定期清除浏览器缓存和 Cookie。这有助于保护您的隐私,并确保不会留下任何可能被利用的残留数据。

4.保持临时邮件匿名

临时邮箱的主要优势之一是匿名性。请勿将您的临时邮箱地址与您的主邮箱或任何个人信息关联。这有助于保障您的身份安全并保护您的在线活动隐私。

5.谨慎使用链接和附件

与普通电子邮件一样,请谨慎处理临时邮箱收件箱中收到的任何链接或附件。这些链接或附件可能包含恶意软件或钓鱼攻击。请仅与来自可信来源的内容进行互动。

6.使用临时邮箱进行多次注册

如果您需要在一个平台上注册多个帐户,临时邮箱会是一个很有用的工具。它可以让您快速轻松地创建多个地址,从而帮助您管理多个帐户,而不会使主收件箱变得杂乱无章。

推荐的临时邮箱网站

Dockerd 日志太多?磁盘爆了?一篇教您搞定容器日志问题

2025-11-15 00:00:00

Docker 重度使用者们,您了解过 Docker 日志吗?如何查找、减少以及管理日志,从而有效节省磁盘空间!今天分享一下如何处理 Docker 日志的问题。

日志好坑

Docker 默认使用的是 json-file 日志驱动。日志会一直写,没有限制、没有轮转、没有清理!日志默认位置:

1
/var/lib/docker/containers/<container-id>/<container-id>-json.log

当您发现它时,可能已经:

1
2
3
4
IO 等待时间长
占了几十个 G
吃满磁盘
服务挂了

处理问题

主要通过日志轮询方式处理,下面介绍两种方式设置日志轮询。在运行容器时设置轮转策略:

1
2
3
4
5
6
docker run -d \
--name myapp \
--log-driver json-file \
--log-opt max-size=10m \
--log-opt max-file=3 \
myapp:latest

参数解释:

参数 解释
max-size=10m 单日志文件最大 10MB
max-file=3 最多保留 3 个轮转文件,容器总日志控制在 30MB 内

修改 Docker 的配置,该配置适用于所有容器,编辑 Docker 配置文件/etc/docker/daemon.json:

1
2
3
4
5
6
7
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5"
}
}

重启下 Docker 服务,注意只对之后创建的容器生效!

1
systemctl restart docker

日志清理

正运行的容器,可以这样快速清理日志「生产环境慎用」

1
echo "" > $(docker inspect --format='{{.LogPath}}' <container-id>)

或者更稳一点:

命令 解释
docker stop 停掉容器
docker rm 删除容器

禁用日志输出,这个操作慎用,有可能到影响应用运行,而且不方便后续的排查:

1
docker run --log-driver=none <container-id>

日志快速清理,仅推荐在磁盘告急临时使用:

1
find /var/lib/docker/containers -name *-json.log -exec truncate -s 0 {} \;

实战建议

根据不同的场景推荐配置值:

场景 配置值一 配置值二
开发环境 max-size=5m max-file=3
测试环境 max-size=10m max-file=5
生产环境 max-size=50m max-file=10

最佳实践:

1
2
3
用 json-file+max-size+max-file
修改 daemon.json 设置全局默认值
旧的容器要么清理日志,要么重启带有轮转参数