BegoMdeMM/docker
GitHub: BegoMdeMM/docker
一套经过实际验证的 Docker 动手实践教程,从基础容器操作到 Compose 编排与安全强化,提供完整的可复现实验记录。
Stars: 0 | Forks: 1
# Docker Labs
一个循序渐进的 Docker 实践实验室,通过已执行、验证并记录的练习来学习 Docker,涵盖镜像、容器、存储、网络、Docker Compose 以及基础强化(hardening)。
本仓库保留了在实验室环境中实际验证过的结果。其中的标识符、IP 地址、PID、时间和资源消耗数据均为特定执行的证据,而非通用值。
## 已验证环境
| 组件 | 值 |
|---|---|
| 设备 | `WDkali-h61` |
| 操作系统 | Kali GNU/Linux Rolling |
| Docker Engine | `28.5.2+dfsg4` |
| Docker Compose | `2.40.3-3` |
| 存储 | `overlay2` |
| 主要基础镜像 | `alpine:3.24.1`,在构建时通过 digest 锁定 |
## 目录
### 0. 基础知识
1. [创建和修改容器与镜像](0-B%C3%A1sicos/1-Crear%20y%20modificar%20contenedores.md):`docker run`,文件系统更改以及 `docker commit` 与声明式构建的对比。
2. [管理容器和状态](0-B%C3%A1sicos/2-Gestionar%20contenedores.md):状态、退出代码、重命名和停止。
3. [检查、日志和诊断](0-B%C3%A1sicos/3-Inspecci%C3%B3n,%20logs%20y%20diagn%C3%B3stico%20de%20contenedores.md):日志、`inspect`、`top`、`stats` 和元数据。
4. [生命周期与高级交互](0-B%C3%A1sicos/4-Lanzamiento%20y%20gesti%C3%B3n%20avanzada%20de%20contenedores.md):`attach`、`exec`、`create`、暂停、重启、等待和信号。
### 1. 可复现镜像
- [基础 Dockerfile](1-Im%C3%A1genes/1-Dockerfile-basico/README.md):通过 digest 锁定基础镜像、OCI 标签、精简上下文、非特权用户、权限、缓存和层(layers)。
### 2. 存储
- [卷和绑定挂载](2-Almacenamiento/1-Volumenes-y-bind-mounts/README.md):持久化、只读、权限、生命周期以及主机路径的风险。
### 3. 网络
- [隔离与 DNS](3-Redes/1-Aislamiento-y-DNS/README.md):bridge 网络、内部 DNS、隔离和多网络容器。
### 4. Docker Compose
- [Web 应用与客户端](4-Compose/1-Web-y-cliente/README.md):本地构建、三个服务、依赖关系、健康检查(healthcheck)、内部网络、数据卷、`.env` 和强化。
### 5. 安全
- [基础强化](5-Seguridad/1-Hardening-basico/README.md):非 root 用户、移除能力(capabilities)、`no-new-privileges`、只读根文件系统、`tmpfs`、网络和资源限制。
## 进度
```
contenedor manual
↓
Dockerfile versionado
↓
persistencia de datos
↓
redes y DNS
↓
orquestación con Compose
↓
hardening y verificación
```
## 快速开始
要求:
- 正在运行的 Docker Engine;
- 通过 `docker compose` 调用的 Docker Compose v2;
- 与 daemon 通信的权限;
- 每次实践中指定的标准实用工具。
```
git clone https://github.com/BegoMdeMM/docker.git
cd docker
docker version
docker compose version
```
每次实践都包含目标、已验证环境、命令、观察到的结果、遇到的错误、验证以及明确的清理步骤。
要在另一台机器上安装 Docker,请查阅[参考指南](docs/instalacion-docker.md)以及其中链接的官方说明。
## Docker Compose 示例
```
cd 4-Compose/1-Web-y-cliente
cp .env.example .env
docker compose config --quiet
docker compose up --build --detach --wait --wait-timeout 60
docker compose ps --all
```
彻底清理:
```
docker compose down --volumes --remove-orphans
docker image rm compose-web:1.0
```
在执行删除操作之前,请务必检查目标。
## 技术决策
- 使用 `--mount` 来表达来源、目标、类型和模式。
- 构建的镜像会锁定基础镜像的版本和 digest。
- 进程在其功能允许的情况下以非特权模式运行。
- Compose 应用了 `read_only`、`tmpfs`、`cap_drop` 和 `no-new-privileges`。
- 除非必要,网络会避免使用固定子网。
- 保留了真实的错误。Compose 实践记录了最初假设 Alpine 包含 `httpd` 时出现的故障及其修复方法。
- 不会引发资源耗尽,也不会捏造结果。
## 适用范围
这是一个教育性质的实验室。所展示的控制措施不能替代漏洞分析、密钥管理、补丁修复、应用程序授权、集中式可观测性、备份或生产级控制。
## 版权归属
实践由 `BegoMdeMM` 执行、验证并记录,同时在仓库历史中保留了之前协作的贡献。
标签:Docker, Docker Compose, Web截图, 安全防御评估, 容器安全, 容器技术, 教程, 版权保护, 系统运维, 请求拦截