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截图, 安全防御评估, 容器安全, 容器技术, 教程, 版权保护, 系统运维, 请求拦截