Ubuntu Docker 完整安装+避坑配置文档(解决403/域名解析/配置报错)
一、文档说明
本文档为Ubuntu 全系通用Docker 官方标准安装教程,整合实操踩坑解决方案,彻底解决:
- vim E212 无法打开并写入文件
- docker pull 403 Forbidden
- lookup xxx on 127.0.0.53:53 no such host 域名解析失败
- 混淆 config.json / daemon.json 配置不生效
- 旧镜像源失效、DNS 解析异常、权限报错等问题
适用系统:Ubuntu 20.04 / 22.04 / 24.04 及以上
二、环境预处理(必做)
1. 卸载系统旧版残留 Docker(避免冲突)
系统自带旧版 docker.io 容易引发兼容问题,彻底卸载清理:
bash |
2. 更新系统依赖
bash |
三、官方安装 Docker(稳定版)
1. 安装依赖工具
bash |
2. 添加 Docker 官方 GPG 密钥
bash |
3. 写入 Docker 官方软件源
bash |
4. 安装最新稳定版 Docker
bash |
四、基础服务配置(必做)
1. 启动服务并设置开机自启
bash |
2. 普通用户免 sudo 操作 Docker(核心优化)
解决每次执行 docker 命令必须加 sudo 的问题:
bash |
重要:执行后必须退出终端重新登录,权限才生效
3. 验证安装成功
bash |
五、镜像加速器 + DNS 终极避坑配置(解决403/解析失败)
⚠️ 核心避坑知识点(重中之重)
- /etc/docker/daemon.json:全局服务配置,加速器、DNS 必须写这里(生效)
- ~/.docker/config.json:用户客户端配置,仅存登录凭证,写加速器完全无效,还会报错
- 网易镜像源hub-mirror.c.163.com现已大量失效,会报域名解析错误,禁止使用
1. 清理错误旧配置
bash |
2. 写入终极可用配置(DNS+稳定镜像源)
修复127.0.0.53DNS 解析失败问题,搭配高可用镜像源,杜绝403报错:
bash |
3. 阿里专属镜像源配置(可选)
如需使用阿里云镜像,替换为自己专属地址(通用地址会403):
获取地址:阿里云控制台 → 容器镜像服务ACR → 镜像加速器
bash |
4. 重载配置并重启 Docker
bash |
5. 验证配置生效
bash |
输出显示配置的镜像地址即为成功。
六、最终测试(零报错验证)
bash |
成功拉取镜像、运行容器,代表安装+配置全部完成,无403、无解析错误。
七、常见报错解决方案(专属本次踩坑)
1. vim E212: 无法打开并写入文件
原因:目录不存在,直接创建即可:
bash |
2. lookup xxx on 127.0.0.53:53 no such host
原因:系统本地DNS解析异常,解决方案:配置文件中强制指定公共DNS(本文已内置)。
3. docker pull 403 Forbidden
- 旧网易镜像源失效,直接删除
- 非阿里服务器使用阿里公共地址会403,必须用专属地址或替换 DaoCloud 源
- ~/.docker/config.json 存在错乱认证,执行本文「清理错误旧配置」步骤
4. sudo vim ~/.docker 改完不生效
原因:sudo 下 ~ 指向 root 目录,修改的不是当前用户配置,禁止用 sudo 编辑用户级配置文件。
八、日常运维常用命令
bash |
|(注:部分内容可能由 AI 生成)