在云服务器上安装和配置 Docker 环境,通常分为以下步骤(以 Ubuntu/Debian 为例,CentOS/RHEL 略有差异):
一、前置准备
-
确认系统版本
cat /etc/os-release uname -rDocker 官方支持主流 Linux 发行版(Ubuntu 20.04+、Debian 11+、CentOS 7+/8+、AlmaLinux 等)。
-
更新系统包
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu # 或 sudo yum update -y # CentOS/RHEL -
卸载旧版 Docker(如有)
sudo apt remove docker docker-engine docker.io containerd runc # 或 sudo yum remove docker docker-client docker-server docker-compose-plugin
二、安装 Docker Engine(推荐方式)
✅ 方法一:使用官方脚本(最简单,适用于多数场景)
curl -fsSL https://get.docker.com | sh -s docker --mirror Aliyun
# 若网络慢,可替换为:
# curl -fsSL https://get.docker.com | sh -s docker
💡 提示:国内用户建议加
--mirror Aliyun提速;若无此参数且下载慢,可手动换源后执行。
✅ 方法二:手动安装(更可控)
1. 添加 Docker 官方 GPG 密钥与仓库
Ubuntu/Debian:
sudo apt install ca-certificates curl gnupg lsb-release -y
# 创建目录并添加密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 添加软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新并安装
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
CentOS/RHEL:
sudo dnf install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
三、启动并设置开机自启
sudo systemctl enable --now docker
sudo systemctl status docker
验证是否正常运行:
docker version
docker info
四、非 root 用户运行 Docker(可选但推荐)
避免每次用 sudo:
sudo usermod -aG docker $USER
newgrp docker # 立即生效(或重新登录)
测试:
docker run hello-world
⚠️ 注意:将用户加入
docker组相当于赋予类似 root 的权限,请谨慎操作。
五、配置镜像提速(国内必做)
编辑 /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"
}
}
然后重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
🔔 若
daemon.json不存在则新建;确保 JSON 格式正确(无 trailing comma)。
六、安全加固建议(生产环境)
| 项目 | 建议 |
|---|---|
| 防火墙 | 仅开放必要端口(如 2375 不暴露公网!) |
| TLS 认证 | 启用 Docker Daemon TLS(高级场景) |
| 资源限制 | 使用 --memory, --cpus 限制容器资源 |
| 自动清理 | 定期执行 docker system prune -a |
| 日志管理 | 配置 log-opts 防止磁盘占满 |
示例:限制容器资源
docker run -d --name test --memory=512m --cpus=0.5 nginx
七、常见问题排查
-
❌
permission denied while trying to connect to the Docker daemon socket
→ 检查用户是否在docker组:groups $USER -
❌
unable to pull image
→ 检查daemon.json中镜像源是否可用;尝试切换其他镜像源 -
❌
containerd not found
→ 确保安装了containerd.io包 -
🔄 更新 Docker:
sudo apt update && sudo apt upgrade docker-ce docker-ce-cli containerd.io # 或 sudo dnf update docker-ce docker-ce-cli containerd.io
需要我针对你的具体操作系统(如 CentOS 7、Alibaba Cloud Linux 3 等)提供定制化命令,或协助配置 Docker Compose / Kubernetes 集成吗?
云服务器