准备工作
在修改 Docker 的镜像存储路径之前,需要先停止 Docker 服务,以避免配置过程中出现错误。可以使用以下命令停止 Docker 服务:
sudo systemctl stop docker
该命令会发送停止信号给 Docker 服务进程,使其安全退出。
指定新的镜像存储目录
在Ubuntu系统上,Docker默认将镜像存储在/var/lib/docker
目录下。为了更改镜像的存储位置,我们需要创建一个新的目录来存放这些数据。
例如,假设我们希望将镜像存储在 /mnt/docker-data
目录下:
sudo mkdir -p /mnt/docker-data
这个命令会创建一个名为 docker-data
的目录,并将其放置在 /mnt
目录下。-p
参数确保如果父目录不存在,也会一并创建。
修改 Docker 配置文件
编辑 daemon.json
Docker 的配置信息存储在 JSON 格式的文件 /etc/docker/daemon.json
中。要修改镜像存储路径,需要编辑此文件。
- 如果文件不存在,可以使用以下命令创建:
sudo touch /etc/docker/daemon.json
设置 data-root
在 daemon.json
文件中添加或修改 data-root
字段,将其设置为新的镜像存储路径。例如,将镜像存储到 /mnt/docker-data
目录:
{
"data-root": "/mnt/docker-data"
}
保存文件后,Docker 将会使用新的路径来存储镜像数据。
将旧数据迁移至新路径
如果你之前已经使用默认路径下载了一些 Docker 镜像或创建了容器,并且希望保留这些数据,可以在修改 data-root
配置项之前将它们移动到新的存储路径。
可以使用以下命令将 /var/lib/docker
目录下的所有内容移动到 /mnt/docker-data
:
sudo mv /var/lib/docker/* /mnt/docker-data/
注意: 执行此操作之前,请确保 /mnt/docker-data
目录已经创建并具有足够的存储空间。
启动 Docker 服务
重启 Docker 服务
在修改完 Docker 的配置后,需要重新启动 Docker 服务以使更改生效。可以使用以下命令重启 Docker 服务:
sudo systemctl restart docker
该命令会停止当前运行的 Docker 服务,并重新启动它,从而应用新的配置。
验证配置
检查 Docker Root Dir
可以使用 docker info
命令查看 Docker 的信息,并使用管道符 |
将输出传递给 grep "Docker Root Dir"
命令来筛选出包含 “Docker Root Dir” 的行。如果配置成功,该行将显示你设置的新镜像存储路径。
docker info | grep "Docker Root Dir"
例如,如果你将镜像存储路径设置为 /mnt/docker-data
,则输出应类似于:
Docker Root Dir: /mnt/docker-data