修改 Docker 镜像存储目录 和 容器运行时目录
默认情况下,Docker 的数据(镜像、容器、网络、卷等)都存放在 /var/lib/docker
目录下。我们可以通过修改配置文件或启动参数来调整。
修改 Docker 镜像与容器运行目录
1. 停止 Docker
systemctl stop docker
systemctl stop docker.socket
2. 创建新目录
假设你要把数据迁移到 /data/docker
mkdir -p /data/docker
3. 修改 Docker 配置文件
编辑 /etc/docker/daemon.json
(没有就新建):
{
"data-root": "/data/docker"
}
4. 迁移已有数据(可选)
如果你要保留之前拉取的镜像和容器,可以把原目录迁移过来:
rsync -aP /var/lib/docker/ /data/docker/
5. 修改 systemd 配置(如果用的是自定义启动参数)
有些系统(比如 Ubuntu、CentOS)Docker 可能会通过 systemd unit 覆盖配置,你可以检查:
systemctl cat docker | grep ExecStart
如果里面有 --data-root
参数,可以在 /etc/systemd/system/docker.service.d/override.conf
里修改,比如:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --data-root=/data/docker -H fd://
然后:
systemctl daemon-reexec
6. 启动 Docker
systemctl start docker
systemctl enable docker
7. 验证
docker info | grep "Docker Root Dir"
应该显示:
Docker Root Dir: /data/docker
⚠️ 注意:
-
如果你是迁移目录,不要直接 mv,推荐
rsync
或cp -a
,保证权限与符号链接正确。 -
修改目录后,所有容器需要重新启动。
-
如果用的是
overlay2
存储驱动,最好保证新目录和旧目录在同一个文件系统类型(如 ext4/xfs),避免兼容性问题。
评论区