排序
USER 指令:为什么你的容器不该用 root 运行?
USER 指令:为什么你的容器不该用 root 运行? 概述 Docker 容器的默认用户是 root(UID 0)。在容器内以 root 运行看似方便,实则带来了严重的安全风险。USER 指令允许我们在 Dockerfile 中切...
垂直拆分与水平拆分的区别
垂直拆分与水平拆分的区别 拆分的两种基本思路 数据库拆分有两种基本维度:垂直拆分(Vertical Sharding)和 水平拆分(Horizontal Sharding)。理解两者的区别是设计可扩展数据库架构的基础。 ...
TEXT 和 BLOB 类型的使用注意事项
TEXT 和 BLOB 类型的使用注意事项 什么是 TEXT 和 BLOB MySQL 中,TEXT 和 BLOB 是用于存储大量数据的字段类型。TEXT 系列用于存储字符串(字符数据),BLOB 系列用于存储二进制数据(图片、文...
InnoDB 与 MyISAM 核心区别
InnoDB 与 MyISAM 核心区别 概述 InnoDB 和 MyISAM 是 MySQL 最经典的两个存储引擎。InnoDB 在 MySQL 5.5.5 之后成为默认引擎。理解两者的区别是 MySQL 面试的必考题。 核心区别总览 graph TD s...
EXPOSE 指令与 -p 参数:端口声明的本质区别
EXPOSE 指令与 -p 参数:端口声明的本质区别 概述 在 Docker 的日常使用中,EXPOSE 指令和 -p(--publish)参数都涉及端口,但它们的职责和生效方式完全不同。很多新手把 EXPOSE 当成'打开端口'...
Redis 核心数据结构与实战场景深度解析
Redis 核心机制深度解析——从数据结构到持久化与高可用 摘要 Redis 作为业界最广泛使用的内存键值存储系统,以其卓越的性能和丰富的数据结构著称。本文从底层数据结构出发,深入剖析 Redis 六...
AppArmor 和 SELinux
AppArmor 和 SELinux 什么是强制访问控制 AppArmor 和 SELinux 都是 Linux 的强制访问控制(MAC,Mandatory Access Control)机制。相比传统的自主访问控制(DAC,读/写/执行权限),MAC 提供了...
网络命名空间
网络命名空间 面试题 什么是 Linux 网络命名空间?Docker 是如何利用它实现容器网络隔离的? 标准答案 网络命名空间(Network Namespace)是 Linux 内核提供的网络隔离机制。每个网络命名空间拥...
缓存超量怎么办——缓存容量规划与淘汰策略
缓存超量怎么办——缓存容量规划与淘汰策略 问题背景 Redis 是一个基于内存的数据库,内存是有限且昂贵的资源。当缓存数据量超过可用内存时,如果不加控制,Redis 会因 OOM(Out of Memory)被...
特权容器风险
特权容器风险 什么是特权容器 特权容器(Privileged Container)是通过 --privileged 参数创建的容器。这个标志赋予了容器几乎所有的宿主机的权限——打破了大多数 Docker 的安全隔离机制。 --p...

