首页 > Sysadmin > 正文

Ubuntu 安装 Docker:装完还有三步配置

huyuanwen 2026-10-26 Sysadmin

Ubuntu 的发行版仓库可能提供 docker.io 这类非官方 Docker 包,它们与 Docker 官方引擎包相互冲突,必须先卸载再装官方版 [1]。官方路线四步走:清场、安装、验证、配置。

1. 清场:先卸冲突包

Docker Engine 把依赖 containerd、runc 打包成 containerd.io 一并交付,因此官方文档要求先移除旧的冲突包:

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)

apt 可能报告这些包本来就没装,不影响继续 [1]。

2. 安装:走官方 apt 仓库

先配置 Docker 官方 apt 仓库(GPG 密钥与源条目):

sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update

再安装引擎本体(需 root 或 sudo 权限;防火墙方面注意 Docker 仅兼容 iptables-nft 与 iptables-legacy):

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

另有 get.docker.com 便利脚本可一步装完,官方明确只推荐给测试和开发环境,生产别用 [1]。

3. 验证:两条命令

sudo systemctl status docker
sudo docker run hello-world

服务没在跑就先 sudo systemctl start docker;hello-world 会下载测试镜像、在容器里跑一遍、打印确认信息后退出 [1]。

4. 配置:三件事

免 sudo:安装后 docker 组存在但没有成员,默认命令都得带 sudo。把自己加进去,注销重登(或执行 newgrp docker)后生效 [2]:

sudo usermod -aG docker $USER

改守护进程配置:官方推荐写 /etc/docker/daemon.json(rootless 模式在 ~/.config/docker/daemon.json),比如把数据目录挪盘:{"data-root": "/mnt/docker-data"}。同一选项不要在配置文件和启动参数里写两遍,否则 dockerd 直接拒绝启动 [3]。

开机自启:Debian/Ubuntu 安装后默认已开启;其他 systemd 发行版执行 sudo systemctl enable docker.service [2]。

5. 注意事项

docker 组等于 root 级权限——Docker 守护进程始终以 root 运行,socket 权限按组成员放行,加组前想清楚给谁 [2]。用 Docker 暴露的容器端口会绕过 ufw/firewalld 的防火墙规则,对外服务前先读官方说明 [1]。容器日志默认用 json-file 驱动且会持续膨胀,按需开启轮转或改用 local 驱动 [2]。

装完 Docker 最常见的坑不是命令跑不通,而是把 root 级权限当日常工具随手给。


参考资料

本文命令与选项逐项核对自上述官方文档;发布前未在实机执行,如你在 Ubuntu 22.04/24.04 跑通欢迎反馈。