Ubuntu 26.04 安装 Docker:阿里云、腾讯云镜像源与基础安全配置

💡 原文中文,约41700字,阅读约需100分钟。
📝

内容提要

本文介绍 Ubuntu 26.04 云服务器安装 Docker 的完整流程:配置阿里云或腾讯云 APT 软件源,安装 Docker Engine、Buildx 和 Compose,并检查服务状态。需区分软件包源与容器镜像源,配置日志轮转、权限、端口及防火墙。生产环境建议使用 APT 源而非便捷脚本,并注意备份数据、固定版本、谨慎升级。

🔎

延伸解读

软件包源与容器镜像源是两回事

文章反复强调,安装脚本的 --mirror Aliyun 只切换 Docker 软件包源,脚本本身仍从 get.docker.com 下载,docker pull 也不会因此加速。软件包源负责安装 Docker Engine 等组件,容器镜像源负责拉取业务镜像,两者配置位置和排查方向完全不同。装好 Docker 后拉取镜像超时,应检查容器仓库、网络或 daemon 代理,而不是重装 Docker。

生产环境优先用 APT 源而非便捷脚本

作者明确倾向直接配置 APT 源,便于检查软件包来源和管理后续升级,并指出 Docker 官方也不建议依赖便捷脚本部署生产系统。脚本方式适合开发测试,但可能带来意外的主版本升级,且不适合作为已有环境的常规升级工具。已有安装通过 APT 升级即可,升级前应在测试环境验证并备份数据。

日志轮转与权限配置的注意点

文章建议使用 local 日志驱动并设置 max-size 和 max-file 实现轮转压缩,但强调新配置只对后续新建容器生效,已有容器需重建才能采用。权限方面,加入 docker 组的账号拥有相当于 root 的权限,因此作者继续使用 sudo docker,不随意将 CI 或网站运行账号加入该组。Docker socket 也不应挂入业务容器,即使加 :ro 也无法限制只读操作。

端口发布与防火墙的潜在冲突

文章提醒,8080:80 这类写法默认发布到宿主机所有地址,只供本机访问的服务应显式绑定回环地址如 127.0.0.1:8080:80。Docker 发布端口还可能绕过 UFW 常规规则,配置防火墙前需确认 Docker 使用的后端:iptables 和原生 nftables 规则挂接方式不同,原生 nftables 后端没有 DOCKER-USER 链,不能照搬旧教程。

❓

Q&A

在 Ubuntu 26.04 上安装 Docker,应该用官方便捷脚本还是配置 APT 源?

生产环境建议直接配置 APT 源,方便检查软件包来源和管理后续升级;便捷脚本可以用于开发和测试环境,Docker 官方也不建议依赖它部署生产系统。

Ubuntu 26.04 的发行版代号是什么?配置 Docker 源时要注意什么?

Ubuntu 26.04 的发行版代号是 resolute。配置时不要换成 noble,也不要修改系统版本信息来绕过检查;命令会自动读取代号和架构,使用 amd64 或 arm64 时都不需要手动修改。

Docker 安装脚本的 --mirror Aliyun 参数能加速 docker pull 吗?

不能。--mirror Aliyun 只会把 Docker 软件包源切换到阿里云,安装脚本仍从 get.docker.com 下载,docker pull 也不会因此获得加速。软件包源和容器镜像源是两回事。

Docker 安装后如何配置日志轮转?

可以使用 Docker 官方推荐的 local 日志驱动,在 /etc/docker/daemon.json 中配置:{"log-driver": "local", "log-opts": {"max-size": "20m", "max-file": "5"}}。这样日志文件达到 20m 时轮转,最多保留 5 个文件。注意 log-opts 中的值使用字符串。

为什么不应该把用户加入 docker 组?

Docker 官方文档明确说明,加入 docker 组的账号可以获得相当于 root 的权限。所以建议继续使用 sudo docker,不要为了省去 sudo 就把 CI、网站运行账号或其他用户全部加入该组。

Docker 发布端口时如何避免暴露到所有地址?

在 Compose 的 ports 配置中明确绑定回环地址,例如:ports: - "127.0.0.1:8080:80"。这样只供本机访问,而不是默认发布到宿主机的所有地址。

🏷️

标签

➡️

继续阅读