2h2g安装docker?

2核 CPU、2GB 内存(2H2G) 的服务器上安装 Docker 是完全可行的,但需要特别注意内存优化配置,因为 Docker 本身及其运行的容器会占用较多内存。

以下是详细步骤和优化建议:


✅ 一、系统要求检查

确保你的系统是主流 Linux 发行版(如 Ubuntu 20.04/22.04、CentOS 7/8、Debian 10+)。

uname -r  # 内核版本需 ≥ 3.10
free -h   # 检查可用内存
df -h     # 检查磁盘空间(建议至少预留 5-10GB)

✅ 二、安装 Docker(以 Ubuntu/Debian 为例)

方法1:使用官方脚本(推荐新手)

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

💡 使用阿里云镜像提速下载,速度更快。

方法2:手动安装(更可控)

# 1. 更新包索引
sudo apt-get update

# 2. 安装依赖
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release

# 3. 添加 Docker 官方 GPG 密钥和仓库
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
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-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# 5. 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

CentOS/RHEL 用户参考:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

⚠️ 三、关键:2H2G 内存优化配置

2GB 内存非常紧张,必须限制 Docker 和容器的资源使用,否则容易触发 OOM(Out of Memory)导致系统崩溃。

1. 修改 Docker 守护进程配置(/etc/docker/daemon.json

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Hard": 65535,
      "Soft": 65535
    }
  }
}

📌 说明:

  • max-size: 10m:每个日志文件最大 10MB,避免日志撑爆磁盘。
  • max-file: 3:最多保留 3 个日志轮转文件。
  • overlay2:高效的存储驱动。

重启 Docker:

sudo systemctl restart docker

2. 运行容器时强制限制资源

例如运行一个 Nginx 容器,限制 CPU 和内存:

docker run -d 
  --name nginx 
  --cpus="0.5" 
  --memory="256m" 
  --memory-swap="512m" 
  --restart=always 
  nginx:alpine

💡 建议单个容器内存不超过 512MB,CPU 不超过 0.5~1 核。

3. 添加 Swap 交换分区(强烈推荐!)

2GB 物理内存容易不足,添加 1~2GB Swap 可显著提升稳定性。

# 创建 2GB 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

验证:

swapon --show
free -h

✅ 四、验证安装

docker --version
docker info | grep "Memory"
docker run hello-world

如果看到 Hello from Docker! 则安装成功。


✅ 五、常见避坑指南

问题 解决方案
容器频繁被杀(OOM) 严格限制 --memory,增加 Swap,减少同时运行的容器数量
Docker 服务启动失败 检查 /var/log/syslogjournalctl -u docker 日志
权限问题 将用户加入 docker 组:sudo usermod -aG docker $USER,然后重新登录
镜像拉取慢 配置国内镜像提速器(如阿里云、腾讯云)

🎯 总结建议

对于 2H2G 服务器:

  1. 只运行轻量级应用(如 Nginx、Redis、小型 Node.js/Python 服务)。
  2. 避免运行大型 Java 应用、MySQL 主库、Kubernetes 控制面等重型服务
  3. 务必配置 Swap + 容器资源限制
  4. 定期清理无用镜像和容器:docker system prune -a

如有具体应用场景(如跑什么服务),可以告诉我,我可以给出更精准的优化方案。