在云服务器上如何安装和配置Docker环境?

在云服务器(如阿里云 ECS、腾讯云 CVM、AWS EC2、华为云 ECS 等)上安装和配置 Docker 环境,需根据操作系统(主流为 Ubuntu/Debian 或 CentOS/RHEL/AlmaLinux/Rocky Linux)选择合适方法。以下以 Ubuntu 22.04/24.04CentOS 7/8/9(或 AlmaLinux/Rocky Linux 8/9) 为例,提供安全、稳定、生产就绪的完整步骤,并附关键注意事项。


✅ 一、通用前置准备(所有系统)

  1. 以 root 或具有 sudo 权限的用户登录

    ssh -i your-key.pem ubuntu@your-server-ip  # Ubuntu
    ssh -i your-key.pem centos@your-server-ip   # CentOS/AlmaLinux
  2. 更新系统并安装基础依赖

    # Ubuntu/Debian
    sudo apt update && sudo apt upgrade -y
    sudo apt install -y curl wget gnupg2 ca-certificates software-properties-common
    
    # CentOS/RHEL/AlmaLinux/Rocky Linux 8+
    sudo dnf update -y
    sudo dnf install -y dnf-plugins-core curl wget gnupg2
    
    # CentOS 7(使用 yum)
    sudo yum update -y
    sudo yum install -y yum-utils curl wget gnupg2
  3. (可选但推荐)配置时区与时间同步

    sudo timedatectl set-timezone Asia/Shanghai
    sudo systemctl enable --now chronyd  # RHEL/CentOS/Alma 8+  
    # 或 Ubuntu: sudo systemctl enable --now systemd-timesyncd

🐳 二、安装 Docker(官方推荐方式:使用 Docker 官方仓库)

⚠️ 不推荐 curl | bash 方式(安全风险高)!请务必使用 GPG 验证的 APT/YUM 仓库安装。

▶ Ubuntu/Debian(22.04/24.04)

# 1. 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 2. 添加稳定版仓库(自动适配系统架构)
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

# 3. 更新包索引并安装
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 4. 启动并设为开机自启
sudo systemctl enable docker
sudo systemctl start docker

# 5. 验证安装
sudo docker --version
sudo docker run --rm hello-world  # 首次运行会拉取测试镜像(需网络通畅)

▶ CentOS/RHEL/AlmaLinux/Rocky Linux 8/9

# 1. 添加 Docker 官方仓库(支持 x86_64/aarch64)
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 2. 安装(Docker CE + CLI + Containerd + Buildx + Compose Plugin)
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 3. 启动并启用开机自启
sudo systemctl enable docker
sudo systemctl start docker

# 4. 验证
sudo docker --version
sudo docker run --rm hello-world

▶ CentOS 7(已 EOL,仅作兼容参考,强烈建议升级系统

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 enable docker && sudo systemctl start docker

🔐 三、安全与权限配置(关键!)

1. 将当前用户加入 docker 组(避免每次用 sudo)

sudo usermod -aG docker $USER
# 重新登录 SSH 或执行:
newgrp docker  # 刷新组权限(当前会话生效)

✅ 验证:docker ps 应无 permission denied 错误。

⚠️ 注意:docker 组等同于 root 权限!仅添加可信用户。生产环境建议严格管控。

2. 配置 Docker 守护进程(可选但推荐)

编辑 /etc/docker/daemon.json(若不存在则创建),启用国内镜像提速(提升拉取速度)、日志限制等:

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "live-restore": true,
  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Hard": 65536,
      "Soft": 65536
    }
  }
}

✅ 重启生效:

sudo systemctl daemon-reload
sudo systemctl restart docker

3. (可选)配置防火墙(如 ufw/firewalld)

  • Docker 默认会修改 iptables 规则,不建议用 ufw/firewalld 管理容器端口
  • 若需限制 Docker 主机访问,建议:
    • 关闭 firewalld/ufw(Docker 自行管理网络更可靠),或
    • 仅放行必要端口(如 SSH、Web 服务),不要放行 Docker 默认桥接网段(172.17.0.0/16)到公网

🧪 四、验证与基础测试

# 查看 Docker 状态
sudo systemctl status docker

# 查看基本信息
docker info | grep -E "(Server|Storage|Cgroup)"

# 运行一个 Nginx 容器测试(绑定 8080 端口)
docker run -d -p 8080:80 --name web-test nginx:alpine

# 访问 http://<your-server-ip>:8080 检查是否返回 Nginx 欢迎页
curl -I http://localhost:8080

# 清理测试容器
docker stop web-test && docker rm web-test

📌 五、生产环境增强建议

项目 建议
容器编排 单机用 docker compose(已随 Docker Desktop/Plugin 安装);集群用 Kubernetes(k3s 轻量级)
镜像安全 使用 docker scan(需 Docker Scout)或 Trivy 扫描漏洞
持久化存储 挂载宿主机目录或使用卷(docker volume create
监控 部署 cAdvisor + Prometheus + Grafana,或使用 docker stats
备份 定期 docker commit + docker save 镜像,docker volume inspect 备份数据卷
日志集中 配置 logging driver(如 fluentd, syslog, loki

❌ 常见问题排查

现象 解决方案
Cannot connect to the Docker daemon 检查 systemctl status docker,确认服务运行;检查用户是否在 docker
Permission denied while trying to connect... 执行 newgrp docker 或重新登录 SSH
docker: command not found 检查安装是否成功(which docker),确认 PATH 正确
拉取镜像超时/慢 检查 daemon.json 中 registry-mirrors 是否生效(docker info | grep Mirrors
容器无法访问网络 检查云服务器安全组是否放行出方向(默认通常允许),或宿主机 iptables 是否拦截

完成!你现在拥有一个安全、高效、可管理的 Docker 环境。
下一步可部署应用(如 Nginx、MySQL、WordPress)、学习 Docker Compose 编排,或接入 CI/CD 流水线。

需要我为你生成:

  • 一键安装脚本(带错误处理)
  • Docker Compose 示例(Nginx + PHP + MySQL)
  • K3s 单节点集群部署指南
  • 阿里云/腾讯云安全组最佳实践配置

欢迎随时告诉我你的具体场景(如“部署 WordPress”、“搭建私有 Registry”),我会提供定制化方案 👨‍💻

未经允许不得转载:CLOUD云枢 » 在云服务器上如何安装和配置Docker环境?