在云服务器(如阿里云 ECS、腾讯云 CVM、AWS EC2、华为云 ECS 等)上安装和配置 Docker 环境,需根据操作系统(主流为 Ubuntu/Debian 或 CentOS/RHEL/AlmaLinux/Rocky Linux)选择合适方法。以下以 Ubuntu 22.04/24.04 和 CentOS 7/8/9(或 AlmaLinux/Rocky Linux 8/9) 为例,提供安全、稳定、生产就绪的完整步骤,并附关键注意事项。
✅ 一、通用前置准备(所有系统)
-
以 root 或具有 sudo 权限的用户登录
ssh -i your-key.pem ubuntu@your-server-ip # Ubuntu ssh -i your-key.pem centos@your-server-ip # CentOS/AlmaLinux -
更新系统并安装基础依赖
# 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 -
(可选但推荐)配置时区与时间同步
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云枢