服务器挂载数据盘及Docker默认存储位置修改
docker技术日益普遍,我的项目大多数都使用docker运行,这极大的方便了部署与维护。但是在docker的使用中产生的数据会让docker的数据目录越来越大,默认安装安装docker,将会占用根目录,对于大部分云服务器而言,所给的系统盘容量较小,通常可以加购数据盘,本帖记录数据盘挂载及docker数据迁移过程。
挂载数据盘
df -h
查看磁盘情况
若只有一个磁盘/dev/vda1,说明数据盘没有挂载。
fdisk -l
如果发现上面输出结果中没有类似 Disk /dev/vdb
,说明没有数据盘,下面的挂载操作没有意义,可以直接跳到下一部分。- 对磁盘分区
fdisk /dev/vdb
依次输入m 、p、1、回车,回车、wq 即可。
格式化磁盘
mkfs.ext4 /dev/vdb1
将磁盘挂载到系统中
mount /dev/vdb1 /mnt/data
(需要提前创建需要挂载的位置/mnt/data)
- 配置服务器重启自动挂载
blkid
查询磁盘UUID
修改/etc/fstab文件 vim /etc/fstab
添加UUID=2b2f2aea-4153-4f32-a0ba-8258c849929f /mnt/data ext4 defaults 0 2
Docker数据迁移
- 停止docker服务
sudo systemctl stop docker
- 创建新文件夹
mkdir /mnt/data/docker
- 移动文件
sudo rsync -avzh /var/lib/docker/ /mnt/data/docker/
- 更新Docker配置
vim /etc/docker/daemon.json
如果文件 /etc/docker/daemon.json 不存在,就创建它。添加或更新以下内容:
{
"data-root": "/mnt/data/docker"
}
- 重新启动 Docker 服务
sudo systemctl start docker
- 验证 Docker 是否正常工作,并且新的数据存储位置是否正在使用。可以通过运行容器来测试。
一旦确认一切正常,删除旧的 Docker 数据目录:
sudo rm -rf /var/lib/docker
通过docker info
查看Docker信息
Docker Root Dir: /mnt/data/docker
该行表示docker数据位置。