在 2核4G 的云服务器 上部署 Docker 是完全可行的,尤其适合小型项目、测试环境或轻量级应用。下面是一个完整的指南,帮助你在这类服务器上顺利部署 Docker 及其相关应用。
🧰 一、准备工作
1. 云服务器配置要求
- 操作系统:推荐使用 CentOS 7+/Ubuntu 20.04+/Debian 10+
- 内存:4GB(建议预留至少 512MB 给系统)
- CPU:2 核心
- 磁盘空间:至少 20GB(根据镜像数量和日志决定)
🐳 二、安装 Docker
以 Ubuntu 为例:
1. 安装依赖
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
2. 添加 Docker GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3. 添加 Docker 仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 安装 Docker 引擎
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
5. 验证是否安装成功
docker --version
sudo docker run hello-world
🛠️ 三、可选:安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
📦 四、部署一个简单服务(示例:Nginx)
sudo docker run -d -p 80:80 --name mynginx nginx
访问你的服务器 IP 地址,即可看到 Nginx 默认页面。
⚙️ 五、优化建议
1. 设置 Swap(防止内存不足 OOM)
2核4G 虽然可以运行多个容器,但容易遇到内存瓶颈。建议添加 swap:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
2. 设置 Docker 日志限制(防止磁盘占满)
编辑 /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
重启 Docker:
sudo systemctl restart docker
🌐 六、部署常见应用组合(适合 2C4G)
| 应用组合 | 示例命令 |
|---|---|
| LNMP(PHP + MySQL + Nginx) | 使用 docker-compose.yml 启动多个服务 |
| WordPress + MySQL | docker run 或 docker-compose up |
| Node.js + MongoDB | 构建自定义镜像或使用现成镜像 |
| Spring Boot + MySQL | Java 应用部署在容器中 |
✅ 七、注意事项
- 不要部署太多容器,否则容易因内存不足导致崩溃。
- 合理分配资源,如使用
-m 1g控制单个容器最大内存。 - 定期清理无用镜像和容器:
docker image prune -a docker container prune
🧪 八、进阶方向
- 使用 Docker Swarm 做集群管理
- 使用 Traefik/Nginx 做反向和负载均衡
- 结合 Portainer 管理 Docker 容器(图形界面)
- 监控:Prometheus + Grafana + cAdvisor
📝 总结
| 项目 | 推荐配置 |
|---|---|
| 操作系统 | Ubuntu 20.04 LTS |
| Docker 版本 | 最新稳定版 |
| Swap | 建议设置 2GB |
| 部署工具 | Docker + Docker Compose |
| 适用场景 | 测试环境、个人博客、API 服务等轻量级应用 |
如果你有具体想部署的服务(比如 WordPress、Spring Boot、Node.js、Python Web),我可以为你提供对应的 Dockerfile 和 docker-compose.yml 示例。
需要的话请告诉我你想部署什么应用 😊
云计算HECS