以下是腾讯云 Ubuntu 系统配置 Docker 时的常见错误及解决方法:
一、安装阶段错误
1. 无法添加 Docker 官方 GPG 密钥
# 错误:gpg: no valid OpenPGP data found
# 解决方法:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 或使用阿里云镜像
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
2. apt 更新失败
# 错误:404 Not Found 或连接超时
# 解决方法:更换国内源
sudo sed -i 's/archive.ubuntu.com/mirrors.cloud.tencent.com/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.cloud.tencent.com/g' /etc/apt/sources.list
# 或使用阿里云镜像
sudo tee /etc/apt/sources.list.d/docker.list <<-'EOF'
deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable
EOF
3. 依赖冲突
# 错误:docker-ce 与 containerd.io 版本冲突
# 解决方法:先安装指定版本
sudo apt-get install containerd.io=1.6.8-1
sudo apt-get install docker-ce docker-ce-cli
二、权限相关错误
1. 权限拒绝(Permission denied)
# 错误:Got permission denied while trying to connect to the Docker daemon socket
# 解决方法:
sudo usermod -aG docker $USER
# 重新登录或执行:
newgrp docker
# 验证:
docker ps
2. docker.sock 权限问题
# 检查权限
ls -l /var/run/docker.sock
# 修复权限
sudo chmod 666 /var/run/docker.sock
# 或更安全的方式:
sudo chown root:docker /var/run/docker.sock
三、服务启动错误
1. Docker 服务启动失败
# 查看错误详情
sudo systemctl status docker
sudo journalctl -xe -u docker
# 常见修复:
# 清理旧配置
sudo rm -rf /var/lib/docker
# 重新安装
sudo apt-get purge docker-ce docker-ce-cli
sudo apt-get install docker-ce docker-ce-cli
2. iptables 冲突
# 错误:iptables failed
# 解决方法:
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
sudo systemctl restart docker
四、网络配置错误
1. DNS 解析失败
# 创建或修改 Docker DNS 配置
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"dns": ["8.8.8.8", "114.114.114.114"],
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
EOF
sudo systemctl restart docker
2. 端口冲突
# 查看占用端口
sudo netstat -tlnp | grep :2375
# 修改 Docker 监听端口
sudo sed -i 's/ExecStart=.*/ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock/g' /lib/systemd/system/docker.service
sudo systemctl daemon-reload
sudo systemctl restart docker
五、存储驱动错误
1. devicemapper 问题
# 检查当前驱动
docker info | grep Storage
# 修改为 overlay2(推荐)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker
2. 磁盘空间不足
# 查看 Docker 磁盘使用
docker system df
# 清理无用资源
docker system prune -a
# 修改数据目录(如果需要)
sudo systemctl stop docker
sudo rsync -aP /var/lib/docker /new/path/
sudo sed -i 's/ExecStart=.*/ExecStart=/usr/bin/dockerd --data-root /new/path/docker/g' /lib/systemd/system/docker.service
六、腾讯云特定问题
1. 安全组限制
- 确保安全组开放所需端口:
- Docker API: 2375/2376
- 容器应用端口
- 控制台操作:云服务器 → 安全组 → 添加规则
2. 云硬盘挂载问题
# 如果使用云硬盘作为存储
sudo mkdir -p /data/docker
sudo mount /dev/vdb /data/docker
# 添加到 fstab
echo "/dev/vdb /data/docker ext4 defaults 0 0" | sudo tee -a /etc/fstab
七、快速诊断脚本
#!/bin/bash
echo "=== Docker 诊断 ==="
echo "1. 服务状态:"
sudo systemctl status docker --no-pager -l
echo -e "n2. Docker 版本:"
docker --version
docker-compose --version
echo -e "n3. 运行容器:"
docker ps
echo -e "n4. 网络检查:"
docker network ls
echo -e "n5. 存储检查:"
docker info | grep -A5 "Storage"
echo -e "n6. 日志最后20行:"
sudo journalctl -u docker --no-pager -n 20
八、预防措施
-
使用官方安装脚本(快速安装)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun -
配置镜像提速(腾讯云内网)
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ] } EOF -
定期维护
# 每周清理 docker system prune -f # 更新 Docker sudo apt-get update && sudo apt-get upgrade docker-ce
如果问题仍未解决,可提供具体错误信息,以便进一步诊断。
CLOUD技术笔记