项目说明
适用系统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 daemonDocker 服务未运行sudo systemctl start docker
Docker Root Dir 仍为 /var/lib/dockerdaemon.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

更多推荐