fix(content): harden install and security guidance

This commit is contained in:
yeasy
2026-05-21 01:23:44 -07:00
parent d47afa7e75
commit 2e625a3cdf
9 changed files with 27 additions and 28 deletions
+1 -1
View File
@@ -91,7 +91,7 @@ $ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin do
在真正执行前建议先用 `--dry-run` 预览脚本动作
```bash
$ curl -fsSL get.docker.com -o get-docker.sh
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh --dry-run
# 若需要测试频道:
+1 -1
View File
@@ -81,7 +81,7 @@ $ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin do
在真正执行前建议先用 `--dry-run` 预览脚本动作
```bash
$ curl -fsSL get.docker.com -o get-docker.sh
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh --dry-run
# 若需要测试频道:
+1 -1
View File
@@ -91,7 +91,7 @@ $ sudo dnf -y install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING>
在真正执行前建议先用 `--dry-run` 预览脚本动作
```bash
$ curl -fsSL get.docker.com -o get-docker.sh
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh --dry-run
# 若需要测试频道:
+1 -1
View File
@@ -88,7 +88,7 @@ Docker 官方提醒:如果主机使用 `ufw` 或 `firewalld` 管理防火墙
在真正执行前建议先用 `--dry-run` 预览脚本动作
```bash
$ curl -fsSL get.docker.com -o get-docker.sh
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh --dry-run
# 若需要测试频道:
+1 -1
View File
@@ -114,7 +114,7 @@ $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugi
在真正执行前建议先用 `--dry-run` 预览脚本动作
```bash
$ curl -fsSL get.docker.com -o get-docker.sh
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh --dry-run
# 若需要测试频道:
+1 -1
View File
@@ -19,7 +19,7 @@ $ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
```bash
$ docker compose version
Docker Compose version v5.x
Docker Compose version v2.x.x
```
### 11.2.3 卸载
+1 -1
View File
@@ -92,7 +92,7 @@ spec:
### 13.4.5 ConfigMap Secret
* **ConfigMap**存储非机密的配置数据 (配置文件环境变量)
* **Secret**存储机密数据 (密码Token证书) Etcd 中加密存储
* **Secret**存储机密数据 (密码Token证书)Secret 值默认只是 Base64 编码并存入 etcd生产环境应显式启用 etcd 静态加密或 KMS
通过将配置与镜像分离保证了容器的可移植性
+16 -18
View File
@@ -20,7 +20,9 @@ Trivy 是由 Aqua Security 开发的开源漏洞扫描器,以其轻量级、
```bash
# 安装 Trivy
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh -o install-trivy.sh
less install-trivy.sh # 先审阅脚本内容
sudo sh install-trivy.sh -b /usr/local/bin
# 扫描本地镜像
trivy image nginx:latest
@@ -58,7 +60,9 @@ Grype 由 Anchore 开发,支持更广泛的软件包管理器和语言。
```bash
# 安装 Grype
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh -o install-grype.sh
less install-grype.sh
sudo sh install-grype.sh -b /usr/local/bin
# 扫描镜像
grype docker:nginx:latest
@@ -130,7 +134,9 @@ Syft 是 Anchore 推出的专业 SBOM 生成工具。
**安装**
```bash
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh -o install-syft.sh
less install-syft.sh
sudo sh install-syft.sh -b /usr/local/bin
```
**生成 SBOM**
@@ -319,22 +325,14 @@ RUN apt-get update && apt-get install -y --no-install-recommends curl \
#### 2. 构建时扫描
Dockerfile 中集成安全扫描
CI/CD 构建阶段集成安全扫描避免在 Dockerfile 里从分支 URL 下载并执行远程安装脚本
```dockerfile
FROM golang:1.26-alpine AS builder
WORKDIR /app
COPY . .
# 使用 Trivy 扫描源代码
RUN apk add --no-cache curl && \
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin && \
trivy fs . --exit-code 1 --severity HIGH,CRITICAL
RUN go build -o app .
FROM alpine:3.17@sha256:abcd1234...请替换为实际完整的 64 位摘要哈希
COPY --from=builder /app/app /app
```bash
docker run --rm \
-v "$PWD:/work" \
-w /work \
aquasec/trivy:latest \
fs . --exit-code 1 --severity HIGH,CRITICAL
```
#### 3. 运行时镜像扫描策略
+4 -3
View File
@@ -29,7 +29,7 @@
### 碰到网络问题无法 pull 镜像命令行指定 http\_proxy 无效
Docker 配置文件中添加 `export http_proxy="http://<PROXY_HOST>:<PROXY_PORT>"`之后重启 Docker 服务即可
先区分代理要作用在哪一层Docker daemon 拉取镜像时推荐在 `daemon.json` `proxies` 字段或 systemd drop-in 中配置 `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY`然后重启 Docker 服务Docker CLI构建过程和容器内应用的代理应分别使用 `~/.docker/config.json``--build-arg` `docker run --env` 配置不要把 `export http_proxy=...` 当作 `daemon.json` 内容写入
## 容器相关
@@ -79,8 +79,9 @@ $ docker run --network=my-net --ip=172.25.3.3 -itd --name=my-container busybox
* 创建镜像时 `Dockerfile` 要通过 `EXPOSE` 指定正确的开放端口
* 容器启动时指定 `PublishAllPort = true`
* 创建容器时用 `-p HOST_PORT:CONTAINER_PORT` `--publish` 显式发布端口例如 `docker run -p 8080:80 nginx`
* 只想把镜像声明的 `EXPOSE` 端口随机发布到宿主机端口时 `-P` / `--publish-all`之后通过 `docker ps` 查看实际端口
* `Dockerfile` 中的 `EXPOSE` 只是镜像元数据不会自动发布端口
### 可以在一个容器中同时运行多个应用进程么