Ubuntu22.04快速配置阿里云Docker镜像源并安装Docker指南
1. 为什么需要配置阿里云Docker镜像源在Ubuntu系统中安装Docker时默认会从Docker官方仓库下载安装包和镜像。但由于网络原因国内用户直接访问这些国外源经常会遇到下载速度慢、连接不稳定甚至完全无法访问的情况。这就像你想去超市买瓶水结果最近的超市在海外光是路上就要花好几个小时。阿里云提供的Docker镜像源就是一个很好的解决方案。它相当于在国内开了家分店所有Docker相关的软件包和镜像都会定期从官方源同步过来。实测下来使用阿里云镜像源后Docker的安装速度能从原来的几十KB/s提升到几MB/s安装时间从半小时缩短到几分钟。我在帮团队配置开发环境时曾经因为没换源导致十几台机器安装Docker花了整整一上午。后来改用阿里云镜像源后同样的任务不到一小时就全部搞定了。这个提升对于需要频繁部署的环境来说特别重要。2. 安装前的准备工作2.1 系统版本确认首先确认你的系统确实是Ubuntu 22.04。虽然这个方法在多数Ubuntu版本上都适用但不同版本可能需要微调命令。打开终端输入lsb_release -a你会看到类似这样的输出No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy重点看Codename这一行确认显示的是jammy。这个代号在后面配置镜像源时会用到。2.2 更新现有软件包在安装新软件前最好先更新系统已有的软件包。这能避免一些依赖冲突的问题sudo apt update sudo apt upgrade -y这个步骤可能会花点时间取决于你系统上次更新的时间。我遇到过因为跳过这步导致后续安装出问题的情况所以建议不要省略。3. 安装必要依赖包Docker的正常运行需要一些基础依赖包。运行以下命令一次性安装它们sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release这些包各自的作用是apt-transport-https让apt能通过HTTPS协议下载软件ca-certificates管理CA证书确保HTTPS连接安全curl命令行下载工具gnupg用于验证软件包签名lsb-release提供系统版本信息我曾经在一个最小化安装的Ubuntu Server上漏装了ca-certificates结果导致后续添加镜像源时总是报证书错误排查了好久才发现问题。所以建议把这些依赖都装全。4. 配置阿里云Docker镜像源4.1 添加GPG密钥GPG密钥用来验证软件包的完整性确保下载的软件没有被篡改。阿里云的Docker镜像源也有自己的密钥curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg这个命令做了两件事从阿里云下载GPG密钥将其转换为apt能识别的格式并保存到系统目录执行后不会有明显输出但你可以检查文件是否生成ls /usr/share/keyrings/docker-archive-keyring.gpg4.2 添加镜像源地址接下来告诉apt去哪里找Docker软件包。根据之前查到的系统代号(jammy)运行echo deb [archamd64 signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null这个命令会自动填充正确的系统代号确保源地址准确。我见过有人手动复制粘贴命令时把jammy写成了jammi结果当然找不到软件包。4.3 更新软件包索引添加新源后需要更新apt的软件包列表sudo apt update这时你应该能在输出中看到阿里云的镜像地址。如果看到Hit阿里云的网址说明配置成功了。如果出现错误可能是前面的步骤有问题需要检查。5. 安装Docker引擎5.1 安装Docker现在可以正式安装Docker了sudo apt install -y docker-ce docker-ce-cli containerd.io这里安装的是Docker社区版(CE)及其相关组件。安装过程会自动处理所有依赖关系通常需要下载100MB左右的软件包。我第一次安装时特别担心会出问题但其实整个过程非常顺畅。只要前面的镜像源配置正确这里基本不会遇到问题。5.2 启动Docker服务安装完成后Docker服务不会自动启动需要手动开启sudo systemctl start docker为了确保每次开机都自动运行Docker可以设置开机自启sudo systemctl enable docker6. 验证安装6.1 检查服务状态确认Docker是否正常运行sudo systemctl status docker正常运行的输出应该包含Active: active (running)。如果看到failed之类的字样说明服务启动失败需要排查问题。6.2 运行测试容器更直观的验证方法是运行一个测试容器sudo docker run hello-world这个命令会下载一个简单的测试镜像并运行。如果看到Hello from Docker!的欢迎信息说明一切正常。我第一次看到这个输出时感觉特别有成就感虽然只是个简单的测试。7. 解决常见权限问题7.1 权限被拒绝问题如果不加sudo直接运行docker命令通常会遇到这样的错误Got permission denied while trying to connect to the Docker daemon socket...这是因为默认只有root用户和docker组的用户有权限访问Docker的Unix socket。7.2 将用户加入docker组最方便的解决方案是把当前用户加入docker组sudo groupadd docker # 如果docker组不存在则创建 sudo usermod -aG docker $USER然后需要注销重新登录或者运行以下命令立即生效newgrp docker之后就可以不加sudo直接运行docker命令了。不过要注意加入docker组相当于获得了root权限所以生产环境要谨慎操作。8. 日常使用技巧8.1 配置Docker镜像加速除了安装源阿里云还提供容器镜像加速服务。创建或编辑/etc/docker/daemon.json文件sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://你的ID.mirror.aliyuncs.com] } EOF替换你的ID为你的阿里云账号ID。然后重启Docker生效sudo systemctl restart docker8.2 常用Docker命令一些你很快就会用到的命令查看版本docker version列出容器docker ps -a删除镜像docker rmi 镜像ID清理无用数据docker system prune刚开始用Docker时我经常忘记这些命令后来做了个cheatsheet贴在显示器边上。现在这些命令已经形成肌肉记忆了。9. 卸载Docker如果你需要卸载Docker可以运行sudo apt purge docker-ce docker-ce-cli containerd.io sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd这会删除Docker及其所有数据。我建议在测试环境先练习安装和卸载几次熟悉整个过程后再在生产环境操作。