mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 04:14:38 +00:00
Simplify words and fix format issues
This commit is contained in:
@@ -12,7 +12,7 @@ Docker 容器和 LXC 容器很相似,所提供的安全特性也差不多。
|
||||
|
||||
那么,内核中实现命名空间和私有网络的代码是否足够成熟?
|
||||
|
||||
内核命名空间从 2.6.15 版本 (2008 年 7 月发布) 之后被引入,数年间,这些机制的可靠性在诸多大型生产系统中被实践验证。
|
||||
内核命名空间从 2.6.15 版本 (2006 年 1 月发布) 之后被引入,数年间,这些机制的可靠性在诸多大型生产系统中被实践验证。
|
||||
|
||||
实际上,命名空间的想法和设计提出的时间要更早,最初是为了在内核中引入一种机制来实现 [OpenVZ](https://en.wikipedia.org/wiki/OpenVZ) 的特性。
|
||||
而 OpenVZ 项目早在 2005 年就发布了,其设计和实现都已经十分成熟。
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 安全
|
||||
# 第十八章 安全
|
||||
|
||||
容器安全是生产环境部署的核心考量。本章介绍 Docker 的安全机制和最佳实践。
|
||||
|
||||
@@ -28,8 +28,6 @@ flowchart LR
|
||||
|
||||
## 核心安全机制
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 1. 命名空间
|
||||
|
||||
提供进程、网络、文件系统等资源的隔离:
|
||||
@@ -89,12 +87,8 @@ $ docker exec myapp cat /proc/1/status | grep Cap
|
||||
|
||||
## 镜像安全
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 使用可信镜像
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## ✅ 使用官方镜像
|
||||
|
||||
@@ -153,8 +147,6 @@ $ cosign verify --key cosign.pub $IMAGE
|
||||
|
||||
## 运行时安全
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 1. 非 root 用户运行
|
||||
|
||||
> 笔者强调:这是最重要的安全实践之一。
|
||||
@@ -187,8 +179,6 @@ $ docker run -u 1001:1001 myapp
|
||||
|
||||
### 2. 只读文件系统
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 根文件系统只读
|
||||
|
||||
@@ -201,8 +191,6 @@ $ docker run --read-only --tmpfs /tmp --tmpfs /var/run myapp
|
||||
|
||||
### 3. 禁用特权模式
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## ❌ 绝对不要在生产环境使用
|
||||
|
||||
@@ -215,8 +203,6 @@ $ docker run --cap-add=SYS_TIME myapp
|
||||
|
||||
### 4. 限制资源
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker run \
|
||||
-m 512m \ # 内存限制
|
||||
@@ -228,8 +214,6 @@ $ docker run \
|
||||
|
||||
### 5. 网络隔离
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 禁用网络(适用于不需要网络的任务)
|
||||
|
||||
@@ -245,12 +229,8 @@ $ docker run --network=isolated_net myapp
|
||||
|
||||
## Dockerfile 安全实践
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 1. 使用精简基础镜像
|
||||
|
||||
Dockerfile 内容如下:
|
||||
|
||||
```dockerfile
|
||||
## ✅ 好:使用精简镜像
|
||||
|
||||
@@ -265,8 +245,6 @@ FROM ubuntu:24.04 # ~78MB
|
||||
|
||||
### 2. 多阶段构建
|
||||
|
||||
Dockerfile 内容如下:
|
||||
|
||||
```dockerfile
|
||||
## 构建阶段
|
||||
|
||||
@@ -285,8 +263,6 @@ CMD ["node", "/app/server.js"]
|
||||
|
||||
### 3. 不存储敏感信息
|
||||
|
||||
Dockerfile 内容如下:
|
||||
|
||||
```dockerfile
|
||||
## ❌ 错误:敏感信息写入镜像
|
||||
|
||||
@@ -302,8 +278,6 @@ COPY .env /app/
|
||||
|
||||
### 4. 固定依赖版本
|
||||
|
||||
Dockerfile 内容如下:
|
||||
|
||||
```dockerfile
|
||||
## ✅ 固定版本
|
||||
|
||||
@@ -337,8 +311,6 @@ RUN apk add curl
|
||||
|
||||
## 高级安全方案
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### Seccomp 系统调用过滤
|
||||
|
||||
限制容器可以使用的系统调用:
|
||||
@@ -406,8 +378,6 @@ $ cosign verify --key cosign.pub $IMAGE
|
||||
|
||||
## 本章小结
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 安全措施 | 重要程度 | 实现方式 |
|
||||
|---------|---------|---------|
|
||||
| 非 root 运行 | ⭐⭐⭐ | `USER` 指令 |
|
||||
|
||||
Reference in New Issue
Block a user