Add latest techniques

This commit is contained in:
Baohua Yang
2026-02-03 11:09:52 -08:00
parent 99e0eb14ce
commit b4b0d4160a
5 changed files with 86 additions and 7 deletions

View File

@@ -12,6 +12,28 @@ $ docker buildx build .
Buildx 使用 [BuildKit 引擎](buildkit.md) 进行构建支持许多新的功能具体参考 [Buildkit](buildkit.md) 一节
### 使用 `bake`
`docker buildx bake` 是一个高级构建命令支持从 HCLJSON Compose 文件中定义构建目标实现复杂的流水线构建
```bash
# 从 docker-compose.yml 构建所有服务
$ docker buildx bake
# 仅构建指定目标
$ docker buildx bake web
```
### 生成 SBOM
Buildx 支持在构建时直接生成 SBOM (Software Bill of Materials)这对于软件供应链安全至关重要
```bash
$ docker buildx build --sbom=true -t myimage .
```
该命令会在构建结果中包含 SPDX CycloneDX 格式的 SBOM 数据
## 官方文档
* https://docs.docker.com/engine/reference/commandline/buildx/

View File

@@ -285,6 +285,35 @@ $ docker compose scale web=3 db=2
打印版本信息
### `watch`
格式为 `docker compose watch [options] [SERVICE...]`
启用开发模式自动监视源代码并在文件发生变化时刷新服务这需要项目中有 `compose.yaml` ( `docker-compose.yml`)且定义了 `x-develop` `develop` 配置段
例如
```yaml
services:
web:
build: .
develop:
watch:
- action: sync
path: ./web
target: /src/web
ignore:
- node_modules/
- action: rebuild
path: package.json
```
选项
* `--no-up` 不自动启动服务
* `--quiet` 静默模式
## 参考资料
* [官方文档](https://docs.docker.com/compose/reference/overview/)

View File

@@ -1,16 +1,14 @@
# Docker Desktop 启用 Kubernetes
使用 Docker Desktop 可以很方便的启用 Kubernetes由于国内获取不到 `k8s.gcr.io` 镜像我们必须首先解决这一问题
## 获取 `k8s.gcr.io` 镜像
由于国内拉取不到 `k8s.gcr.io` 镜像我们可以使用开源项目 [AliyunContainerService/k8s-for-docker-desktop](https://github.com/AliyunContainerService/k8s-for-docker-desktop) 来获取所需的镜像。
使用 Docker Desktop 可以很方便的启用 Kubernetes
## 启用 Kubernetes
Docker Desktop 设置页面点击 `Kubernetes`选择 `Enable Kubernetes`稍等片刻看到左下方 `Kubernetes` 变为 `running`Kubernetes 启动成功
![](https://github.com/AliyunContainerService/k8s-for-docker-desktop/raw/master/images/k8s.png)
![](https://github.com/docker/docs/raw/main/assets/images/desktop/settings-kubernetes.png)
> 注意Kubernetes 的镜像存储在 `registry.k8s.io`如果国内网络无法直接访问可以在 Docker Desktop 配置中的 `Docker Engine` 处配置镜像加速器或者利用国内云服务商的镜像仓库手动拉取镜像并 retag
## 测试

View File

@@ -28,7 +28,7 @@ After=network.target local-fs.target
[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd --config //etc/cri-containerd/config.toml
ExecStart=/usr/bin/containerd --config /etc/cri-containerd/config.toml
Type=notify
Delegate=yes

View File

@@ -296,6 +296,36 @@ $ docker run --runtime=runsc myapp
---
## 软件供应链安全
随着软件供应链攻击日益频繁仅保障运行时安全已不足够
### 1. SBOM (软件物料清单)
SBOM 类似于食品的配料表列出了容器镜像中包含的所有软件包及其版本
- **生成 SBOM**: 使用 `docker buildx build --sbom` `docker scout sbom`
- **管理 SBOM**: 确保持续监控 SBOM 中的组件是否存在新披露的漏洞
### 2. 镜像签名 (Sigstore / Notary v2)
确保镜像在构建后未被篡改且确实来自可信的发布者
- **Cosign**: Sigstore 项目的一部分用于签署和验证容器镜像
```bash
# 签署镜像
$ cosign sign --key cosign.key myimage:tag
# 验证镜像
$ cosign verify --key cosign.pub myimage:tag
```
### 3. SLSA (Supply-chain Levels for Software Artifacts)
遵循 SLSA 框架确保构建过程的完整性例如使用 GitHub Actions 等受控环境进行构建而非在开发者本地机器上构建发布
---
## 本章小结
| 安全措施 | 重要程度 | 实现方式 |