Bios-Mod/containerize-your-infra
GitHub: Bios-Mod/containerize-your-infra
一个基于 Docker 的容器化基础设施实验室,以模块化方式部署 Nginx、BIND9、Traefik、SFTP 等服务,并提供跨环境配置参考与详细决策文档。
Stars: 0 | Forks: 0

# containerize-your-infra — Docker 基础设施实验室
[](modules/web-server/README.md)
[](modules/dns/README.md)
[](modules/file-transfer/README.md)
[](modules/reverse-proxy/README.md)
[](environments/dev/setup.md)
[](environments/README.md)
[](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, 反向代理, 基础设施, 安全防御评估, 容器化, 服务器配置, 版权保护, 请求拦截, 运维