Bios-Mod/containerize-your-infra

GitHub: Bios-Mod/containerize-your-infra

一个基于 Docker 的容器化基础设施实验室,以模块化方式部署 Nginx、BIND9、Traefik、SFTP 等服务,并提供跨环境配置参考与详细决策文档。

Stars: 0 | Forks: 0

![containerize-your-infra 横幅](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b392bf871d192342.png) # containerize-your-infra — Docker 基础设施实验室 [![Nginx](https://img.shields.io/badge/Nginx-containerized-009639?style=flat-square&logo=nginx&logoColor=white)](modules/web-server/README.md) [![BIND9](https://img.shields.io/badge/BIND9-DNS-informational?style=flat-square)](modules/dns/README.md) [![SFTP](https://img.shields.io/badge/SFTP-file--transfer-blue?style=flat-square)](modules/file-transfer/README.md) [![Traefik](https://img.shields.io/badge/Traefik-reverse--proxy-24A1C1?style=flat-square&logo=traefikproxy&logoColor=white)](modules/reverse-proxy/README.md) [![Docker](https://img.shields.io/badge/Docker-Engine-2496ED?style=flat-square&logo=docker&logoColor=white)](environments/dev/setup.md) [![Compose](https://img.shields.io/badge/Compose-v2-2496ED?style=flat-square&logo=docker&logoColor=white)](environments/README.md) [![Ubuntu](https://img.shields.io/badge/Ubuntu-24.04%20LTS-orange?style=flat-square&logo=ubuntu&logoColor=white)](environments/prod/setup.md) 这是一份使用 Docker 部署容器化基础设施服务的实用分步参考。每个模块都涵盖了一项实际服务 —— DNS、文件传输、Web 服务器、反向代理 —— 并在文中解释了每项决策背后的原因。 在 Ubuntu 24.04 LTS 和 macOS (Apple Silicon) 上构建并测试。Linux 上的 Docker Engine(本地 VM + EC2 t4g.micro)以及 macOS 上的 OrbStack。除非另有说明,所有配置均与架构无关。 本实验室部署了与 [build-your-infra](https://github.com/Bios-Mod/build-your-infra) 相同的服务 —— 技术栈相同,但实现了容器化。该代码库涵盖了跨三种环境的相同基础设施:本地 VM、VPS/EC2 和 AWS 托管服务。这两个代码库是独立的参考资料,分别在不同的抽象级别(裸金属和 Docker)涵盖了相同的技术栈。 ## 环境 | 组件 | dev | prod | |---|---|---| | 主机 | macOS (Apple Silicon) | Ubuntu 24.04 LTS — EC2 t4g.micro / 本地 VM | | 运行时 | OrbStack | Docker Engine | | 架构 | ARM64 | ARM64 (Graviton2) / x86_64 | | 卷 | Bind mounts | Named volumes | | 重启策略 | no | unless-stopped | 在应用任何模块之前,请先设置好您的环境: - **dev** — macOS 上的 OrbStack → [`environments/dev/setup.md`](environments/dev/setup.md) - **prod** — Ubuntu 24.04 LTS 上的 Docker Engine → [`environments/prod/setup.md`](environments/prod/setup.md) ## 部署本实验室 1. 选择您的环境并遵循其设置指南 2. 按顺序应用各个模块 —— 每个模块都是独立且自包含的 3. 在所有模块都验证通过后,部署完整的技术栈 ## 模块 | 模块 | 技术 | build-your-infra 对应项 | 文档 | |---|---|---|---| | Web 服务器 | Nginx 官方镜像 | Nginx + HTTPS + 反向代理 | [`modules/web-server/`](modules/web-server/README.md) | | 文件传输 | atmoz/sftp | SFTP (OpenSSH subsystem) | [`modules/file-transfer/`](modules/file-transfer/README.md) | | DNS | BIND9 | BIND9 | [`modules/dns/`](modules/dns/README.md) | | 反向代理 | Traefik | Nginx proxy block | [`modules/reverse-proxy/`](modules/reverse-proxy/README.md) | | 完整基础设施技术栈 | 所有模块 | 所有模块的组合 | [`stacks/full-infra/`](stacks/full-infra/README.md) | ## 代码库结构 ``` containerize-your-infra/ ├── AGENTS.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── banner.png ├── context │   ├── current-iteration.md │   └── decisions-log.md ├── environments │   ├── README.md │   ├── dev │   │   └── setup.md │   └── prod │   └── setup.md ├── modules │   ├── dns │   │   ├── README.md │   │   ├── automation │   │   ├── configs │   │   │   └── bind │   │   ├── dns.md │   │   ├── docker-compose.prod.yml │   │   └── docker-compose.yml │   ├── file-transfer │   │   ├── README.md │   │   ├── automation │   │   ├── configs │   │   │   ├── keys │   │   │   └── ssh │   │   ├── data │   │   │   └── upload │   │   ├── docker-compose.prod.yml │   │   ├── docker-compose.yml │   │   └── file-transfer.md │   ├── reverse-proxy │   │   ├── README.md │   │   ├── automation │   │   ├── configs │   │   │   └── traefik │   │   ├── docker-compose.prod.yml │   │   ├── docker-compose.yml │   │   └── reverse-proxy.md │   └── web-server │   ├── README.md │   ├── automation │   ├── configs │   │   ├── html │   │   └── nginx │   ├── docker-compose.prod.yml │   ├── docker-compose.yml │   └── web-server.md └── stacks └── full-infra ├── README.md ├── docker-compose.prod.yml └── full-infra.md ```
标签:Docker, NIDS, 反向代理, 基础设施, 安全防御评估, 容器化, 服务器配置, 版权保护, 请求拦截, 运维