Ubuntu 24.04 Docker 安装与配置指南
·
| 项目 | 说明 |
|---|---|
| 适用系统 | Ubuntu 24.04 LTS |
| Docker 版本 | 最新稳定版(通过官方 APT 源安装) |
| 数据目录 | /data/docker(可自定义,避免系统盘爆满) |
| 服务管理 | systemd |
| 当前用户权限 | 加入 docker 组,免 sudo 执行 Docker 命令 |
一、背景说明
Docker 默认将数据存储在 /var/lib/docker,随着镜像、容器和卷的增加,可能占满系统盘(根分区),导致系统无法正常运行。
解决方案:将 Docker 数据目录迁移到独立分区或大容量数据盘(如 /data/docker),防止系统盘爆满。
二、安装 Docker
2.1 安装依赖包
sudo apt update
sudo apt install -y ca-certificates curl
2.2 添加 Docker 官方 GPG 密钥
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
2.3 添加 Docker APT 软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2.4 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2.5 启动并设置开机自启
sudo systemctl enable docker --now
2.6 验证安装
sudo docker --version
预期输出:Docker version 24.x.x, build xxxxx
三、配置 Docker 数据目录
3.1 创建目标数据目录
sudo mkdir -p /data/docker
sudo chown root:root /data/docker
sudo chmod 755 /data/docker
3.2 配置 Docker 数据根目录
编辑 Docker 配置文件 /etc/docker/daemon.json(如果不存在则创建):
sudo vim /etc/docker/daemon.json
写入以下内容:
{
"data-root": "/data/docker"
}
保存退出。
3.3 重启 Docker 使配置生效
sudo systemctl restart docker
3.4 验证数据目录是否生效
sudo docker info | grep "Docker Root Dir"
预期输出:Docker Root Dir: /data/docker
如果显示 /var/lib/docker,说明配置未生效,检查 /etc/docker/daemon.json 格式是否正确(注意 JSON 语法,如逗号、引号等)。
四、用户权限配置(免 sudo 执行 Docker)
4.1 将当前用户加入 docker 组
sudo usermod -aG docker $USER
4.2 刷新组权限(两种方式任选一种)
方式一:重新登录 SSH(推荐)
exit
# 重新 SSH 登录后生效
方式二:切换当前会话的组(临时生效)
newgrp docker
4.3 验证免 sudo 权限
docker info | grep "Docker Root Dir"
预期输出:Docker Root Dir: /data/docker(无需 sudo)
安全提示:
docker组拥有与 root 同等的权限,请仅对信任的管理员账号开放此权限。
五、迁移已有 Docker 数据(仅当已有数据需要迁移)
如果 Docker 已运行并存在旧数据(默认在 /var/lib/docker),需要迁移到新目录。
5.1 停止 Docker 服务
sudo systemctl stop docker
5.2 同步现有数据到新目录
sudo rsync -avxP /var/lib/docker/ /data/docker/
说明:
rsync会保留文件权限、属主和时间戳。如果未安装 rsync,可执行sudo apt install rsync -y。
5.3 确认配置并启动 Docker
sudo systemctl start docker
sudo docker info | grep "Docker Root Dir"
5.4 确认无误后删除旧数据(可选)
sudo rm -rf /var/lib/docker
注意:务必先确认新目录数据完整且 Docker 正常运行,再执行删除操作。
六、常用管理命令
| 操作 | 命令 |
|---|---|
| 查看 Docker 版本 | docker --version |
| 查看数据目录 | docker info | grep "Docker Root Dir" |
| 查看磁盘使用情况 | docker system df |
| 清理未使用的镜像/容器/卷 | docker system prune -a |
| 启动 Docker 服务 | sudo systemctl start docker |
| 停止 Docker 服务 | sudo systemctl stop docker |
| 重启 Docker 服务 | sudo systemctl restart docker |
| 查看 Docker 服务状态 | sudo systemctl status docker |
| 设置开机自启 | sudo systemctl enable docker |
七、常见问题排查
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
permission denied while trying to connect to the Docker daemon socket | 当前用户不在 docker 组 | 执行 sudo usermod -aG docker $USER,重新登录 |
Cannot connect to the Docker daemon | Docker 服务未运行 | sudo systemctl start docker |
Docker Root Dir 仍为 /var/lib/docker | daemon.json 配置未生效 | 检查 JSON 格式,重启 Docker 服务 |
| 数据目录迁移后容器丢失 | 未正确迁移数据或配置文件路径错误 | 停止 Docker,恢复 /var/lib/docker 备份,重试迁移 |
| 磁盘空间仍不足 | 存在大量未清理的镜像或卷 | docker system prune -a 清理 |
八、卸载 Docker(如需完全移除)
# 1. 停止 Docker
sudo systemctl stop docker
# 2. 卸载 Docker 软件包
sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 3. 删除 Docker 数据目录(谨慎操作!)
sudo rm -rf /data/docker
sudo rm -rf /var/lib/docker
# 4. 删除 Docker 配置文件
sudo rm -rf /etc/docker
sudo rm -rf /etc/apt/sources.list.d/docker.list
sudo rm -rf /etc/apt/keyrings/docker.asc
# 5. 删除 docker 用户组(可选)
sudo groupdel docker
九、安装信息汇总
| 项目 | 值 |
|---|---|
| Docker 安装方式 | 官方 APT 源 |
| 数据目录 | /data/docker |
| Docker 服务 | systemctl status docker |
| 配置文件 | /etc/docker/daemon.json |
| 用户组 | docker(需手动加入) |
文档版本:1.0
适用系统:Ubuntu 24.04 LTS
Docker 数据目录:/data/docker
最后更新:2026-07-23
更多推荐
所有评论(0)