在云服务器上安装和配置 Docker 环境通常分为以下步骤(以 Ubuntu/Debian 为例,CentOS/RHEL 略有差异):
一、更新系统并安装必要工具
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
# CentOS/RHEL (7+)
sudo yum install -y yum-utils
二、添加 Docker 官方 GPG 密钥和仓库
Ubuntu/Debian
# 创建 keyrings 目录并导入 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 添加 Docker 仓库
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
CentOS/RHEL
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
三、安装 Docker Engine
# Ubuntu/Debian
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# CentOS/RHEL
sudo yum 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
五、非 root 用户运行 Docker(可选但推荐)
将当前用户加入 docker 组,避免每次命令前加 sudo:
sudo usermod -aG docker $USER
# 使组权限立即生效(需重新登录或执行 newgrp docker)
newgrp docker
⚠️ 注意:将用户加入
docker组相当于赋予该用户 root 权限(可挂载宿主机文件系统),请谨慎操作。
六、配置镜像提速(国内用户强烈推荐)
编辑 /etc/docker/daemon.json(若不存在则新建):
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
然后重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
替代方案:使用阿里云提速器(需注册获取专属地址)
例如:"https://<your-id>.mirror.aliyuncs.com"
七、测试安装
docker run hello-world
若看到欢迎信息,说明安装成功。
八、进阶配置(可选)
1. 配置日志驱动与大小限制(防止磁盘爆满)
继续编辑 /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
2. 配置安全策略(如禁用 HTTP 协议、启用 TLS)
参考官方文档:Docker Security
九、常见问题排查
- Permission denied:检查用户是否在
docker组,或尝试sudo docker ... - 无法拉取镜像:检查网络、DNS、防火墙;尝试切换镜像源
- Containerd 报错:确保
containerd服务正常:systemctl status containerd
需要针对特定云厂商(如阿里云 ECS、腾讯云 CVM、AWS EC2)的优化建议,或想部署 Docker Compose 项目,也可以告诉我你的具体场景,我可以提供定制步骤。
CLOUD技术博