docker-数据目录更改
将 Docker 的存储目录从默认位置(通常是 /var/lib/docker)更改到指定的目录(例如 /data/docker)是确保程序稳定运行的必要操作。以下介绍如何在 Linux 系统上更改 Docker 的存储目录。
步骤 1:停止 Docker 服务
在更改存储目录之前,必须先停止 Docker 服务,以避免数据损坏。
1 | sudo systemctl stop docker |
步骤 2:备份现有数据(可选)
如果你已经有一些数据(如镜像、容器等)在默认的 Docker 存储目录中,建议先备份这些数据。
1 | sudo cp -a /var/lib/docker /var/lib/docker_backup |
步骤 3:创建新的存储目录
创建一个新目录,用于存储 Docker 的数据。
1 | sudo mkdir -p /data/docker |
步骤 4:更改 Docker 的存储目录
Docker 使用 daemon.json 文件来配置存储目录。如果该文件不存在,需要创建它。
创建或编辑 daemon.json 文件
如果 /etc/docker/daemon.json 文件不存在,可以使用以下命令创建:
1 | sudo nano /etc/docker/daemon.json |
如果文件已经存在,直接编辑它。
添加或修改 data-root 配置
在 daemon.json 文件中,添加或修改以下内容:
1 | { |
保存并关闭文件。
步骤 5:更改目录权限
确保 Docker 服务对新目录有适当的读写权限。
1 | sudo chown -R root:docker /data/docker |
步骤 6:重新启动 Docker 服务
重新启动 Docker 服务,使配置生效。
1 | sudo systemctl start docker |
步骤 7:验证更改
验证 Docker 是否正在使用新的存储目录。
检查 Docker 的存储目录
1 | sudo docker info | grep "Docker Root Dir" |
输出应该显示为:
1 | Docker Root Dir: /data/docker |
测试 Docker 功能
拉取一个镜像并运行一个容器,确保一切正常:
1 | sudo docker pull hello-world |
注意事项
- 数据迁移(如果需要)
如果你之前在默认目录中有数据,并且希望将这些数据迁移到新目录,可以手动移动数据:然后重新启动 Docker 服务。
1 sudo mv /var/lib/docker/* /data/docker/- 磁盘空间
确保 /data 目录有足够的磁盘空间来存储 Docker 数据。- 权限问题
如果在更改目录后遇到权限问题,检查 /data/docker 目录的权限,并确保 Docker 服务可以访问它。- 系统重启
如果系统重启后 Docker 服务没有自动启动,检查 systemd 配置:
1 sudo systemctl enable docker
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 念念不忘,必有回响!










