docker.sock 的测试和本质
在使用 Docker 的过程中,总会看到 /var/run/docker.sock 的身影。docker 是客户端程序,dockerd 是守护进程,两者的通信需要通过 docker.sock。
- 它究竟是什么?
- 为什么运行
docker命令需要root权限或加入docker组? - 为什么说映射
docker.sock到容器中是不安全的行为?
在使用 Docker 的过程中,总会看到 /var/run/docker.sock 的身影。docker 是客户端程序,dockerd 是守护进程,两者的通信需要通过 docker.sock。
docker 命令需要 root 权限或加入 docker 组?docker.sock 到容器中是不安全的行为?本文记录一次 Vaultwarden Backup 邮件通知失败的排查过程。最初日志显示 Unexpected EOF on SMTP connection,测试发现 SMTP 流量经过代理时无法收到服务器问候,改为直连后连接恢复;随后又遇到 535 5.7.3 Authentication unsuccessful,进一步确认当前 Outlook 账号不再接受这套基本认证配置。最终,更换为 Serv00 提供 SMTP 服务,并成功收到备份邮件通知。排查中还发现,直接进入容器运行 mail,与通过镜像入口执行邮件测试并不等价。本文分别说明这些问题的现象、验证过程和处理结果。
这台 MacBookPro12,1 是 2015 年款的 13 英寸 Retina 屏 MacBook Pro,配置为 i5-5257U、16GB 内存和一块 256GB 的 APPLE SSD SM0256G,系统停留在 macOS Catalina 10.15.7。购买于 2017 年初,大概有将近四年没被认真使用了:不少新版本的软件无法安装,使用时容易发热卡顿。
一直以来没动它,原因比较简单——担心有些资料没拷出来,或者旧环境哪天要用。
最近和多位朋友聊到硬件的价格话题,又经常刷到 Mac mini M6 的开箱视频,不免想到这台机器。看着它的二手平均价格仅大约550元-750元,而 Time Machine 占用的 PSSD T7 大约1000元,越想越膈应。10 月 1 日心血来潮,下决心抹盘安装 Linux。
很幸运没踩大坑很快就安装完了,整体顺序如下:
整个过程是相对谨慎地边查资料边和 ChatGPT 对话确认每一步的。
本文记录了 GDB 常用的命令作为备忘清单。其中大部分命令来自《深入理解计算机系统》一书,其他补充的少部分是在完成 Lab 的过程中使用到的。
本文拷贝了 CSAPP 第一个实验 Data Lab 的题目和要求,并在尽可能避免直接透露答案的情况下记录自己解决问题时的思考片段。对于尚未正式开动但想提前小试牛刀的读者,可酌情食用。
本实验要求使用严格限制的 C 语言子集实现简单的逻辑、补码和浮点数函数,可以帮助 C 数据类型的位级表示和数据操作的位级行为。
在静态博客系统 Hexo 和它的第三方主题 NexT 被广泛使用多年的情况下,网上添加友链的相关教程并不少。然而由于管理、使用和部署 Hexo 博客的方式有所不同,用户可能并不想或不方便侵入式地在主题目录中修改或添加文件。本文介绍了如何在通过 Git submodule 管理和使用 NexT 主题的情况下,无侵入式地添加并定制友链页面。
本文记录了 Redis 的内存淘汰策略,并介绍了其中 LRU 和 LFU 算法实现相比于普通版本的优化思路,最后简单探究了 Redis 关于内存淘汰的具体实现细节,重点关注 Redis 是如何选取和评估哪些 key 是更应该优先被淘汰的 key。
在探究的过程中,再次体会到 Chat GPT 带来的便捷和它在细微之处的胡说八道,以及网上的资料很有帮助但是通过阅读源码加以验证同样重要。
在刚开始工作时,使用到 Redis,在了解其底层数据结构时,接触到了跳表,但是在之后很长时间里,我其实并不了解它。我甚至因为看到跳表的原理图,仍然觉得难以理解,因此对它有点“望而生畏”。直到我读了跳表的代码实现,结合文字说明,我才真正体会到“跳表的实现相比平衡二叉树而言比较简单”这句话是真的。