云服务器docker存储目录迁移数据盘(实操)

529 阅读3分钟

1. Linux划分分区并挂载数据盘(fdisk)

1、执行以下命令,查看新增磁盘 fdisk -l

磁盘 /dev/vda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00002caf

   设备 Boot      Start         End      Blocks   Id  System
/dev/vda1            2048     8390655     4194304   82  Linux swap / Solaris
/dev/vda2   *     8390656    83886046    37747695+  83  Linux

磁盘 /dev/vdb:85.9 GB, 85899345920 字节,167772160 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

示当前的云主机有两块磁盘,“/dev/vda”是系统盘,“/dev/vdb”是新增数据盘。

2、对新增数据盘执行分区操作 fdisk /dev/vdb(数据盘)

3、输入【p】,按【Enter】,查看分区信息。

4、fdisk /dev/vdb ,输入【n】,按【Enter】,开始新建分区。如果只建立一个分区,只需按【Enter】,选择默认值(主分区编号、初始磁柱编号、截止磁柱编号)。再输入【p】,查看分区信息,可看见新建的磁盘分区。

磁盘 /dev/vdb:85.9 GB, 85899345920 字节,167772160 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xabd7fd17

   设备 Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   167772159    83885056   83  Linux

5、输入【w】,按【Enter】。 将分区结果写入分区表中,分区创建完毕。

6、将新建分区文件系统设为系统所需格式 mkfs -t ext4(文件系统格式) /dev/vdb1(磁盘分区) ,文件系统格式感兴趣的可以查看下。

7、新建挂载点 mkdir /datadrive(挂载点)

8、将新建分区挂载到新建的挂载点下 mount /dev/xvdb1 /datadrive

9、查看挂载结果 df -TH

2. 设置开机自动挂载磁盘

1、查询磁盘UUID, blkid /dev/vdb1(磁盘分区)

/dev/vdb1: UUID="559c1c59-083c-4e70-8c3c-4469064dc8f3" TYPE="ext4"

2、 编辑/etc中的fstab文件,在文件末尾添加

559c1c59-083c-4e70-8c3c-4469064dc8f3 /datadrive      ext4 defaults     0   2

3. docker存储目录迁移

docker info 可查看到docker默认的存储目录 Docker Root Dir: /var/lib/docker

1、停止docker systemctl stop docker

2、在开始迁移之前,首先复制原 Docker 安装(存储)目录到新的路径下

cp -a /var/lib/docker /datadrive

然后备份原目录数据

mv -u /var/lib/docker /var/lib/docker.bak

3、修改docker配置文件,编辑/usr/lib/systemd/system/docker.service文件

ExecStart=/usr/bin/dockerd --graph=/datadrive/docker/

4、systemctl daemon-reload,启动docker systemctl restart docker

5、docker info 可看到Docker Root Dir的路径已更改

6、删除我们原本的存储目录 /var/lib/docker.bak rm -rf /var/lib/docker.bak/