【教程】Docker更换存储位置

转载请注明出处:小锋学长生活大爆炸xfxuezhagn.cn

如果本文帮助到了你,欢迎***点赞、收藏、关注***哦~

目录

背景说明

更换教程

[1. 停止 Docker 服务](#1. 停止 Docker 服务)

[2. 创建新的存储目录](#2. 创建新的存储目录)

[3. 编辑 Docker 配置文件](#3. 编辑 Docker 配置文件)

[4. 迁移已有数据到新位置](#4. 迁移已有数据到新位置)

[5. 启动 Docker 服务](#5. 启动 Docker 服务)

[6. 验证当前 Docker 存储位置](#6. 验证当前 Docker 存储位置)

注意事项


背景说明

Docker 默认将所有数据存储在:

bash 复制代码
/var/lib/docker

现在希望更换位置,比如存到/mnt下面去。

更换教程

1. 停止 Docker 服务

bash 复制代码
sudo systemctl stop docker

2. 创建新的存储目录

bash 复制代码
sudo mkdir -p /mnt/vdb/docker

你也可以指定其他路径,比如 /mnt/disk/docker,只要该目录有足够空间并已挂载好。

3. 编辑 Docker 配置文件

Docker 的配置文件在:

bash 复制代码
sudo vim /etc/docker/daemon.json

如果没有这个文件,可以手动创建它。

修改或添加以下内容:

bash 复制代码
{ "data-root": "/mnt/vdb/docker" }

4. 迁移已有数据到新位置

如果你不想丢弃原来已有的镜像或容器数据,可以执行以下命令迁移:

bash 复制代码
sudo rsync -aP /var/lib/docker/ /mnt/vdb/docker/
  • 注意最后的**/** 是为了复制目录 内部内容 而不是目录本身,所以记得加。

  • -a:归档模式,保留权限、符号链接等

  • -P:显示进度,并支持断点续传

5. 启动 Docker 服务

bash 复制代码
sudo systemctl start docker

6. 验证当前 Docker 存储位置

执行:

bash 复制代码
sudo docker info | grep "Docker Root Dir"

应输出类似:

Docker Root Dir: /mnt/vdb/docker

注意事项

  • 如果你使用的是 Docker Desktop(Windows/Mac),请在图形界面中设置,不适用此方案。

  • 如果你使用的是 自定义安装路径或容器运行时(如 containerd),对应方式可能不同。

  • 推荐使用 rsync 而非 cp 进行迁移,因为它能保留符号链接、权限等信息。

相关推荐
镜子AI2 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
tianyuanwo3 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
螺蛳粉 螺蛳粉4 小时前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
知已难寻5 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
huainingning6 小时前
Windows syslog日志服务器搭建与模拟器对接
运维·服务器·智能路由器
say_fall6 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii6 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器
相思难忘成疾7 小时前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
PellyKoo7 小时前
【docker】cifs卷改smb密码后容器起不来的解决方法
运维·docker·容器
时早玖沐7 小时前
放弃 QQ 官方机器人:用 SnowLuma + AstrBot 自建 QQ 机器人
docker·开源·agent