目录
一、背景
二、挂载数据库盘
1、 查看在云上挂载好的100G数据盘
2、 数据盘sdb分区,使用到的分区命令为fdisk
3、 将已做好分区的数据盘格式化为ext4格式
4、挂载数据盘
5、写入开机自动挂载
三、更新docker数据目录
四、删除docker旧存储数据
提示: 更深入的docker优化技巧,镜像加速等内容见:https://blog.csdn.net/weixin_44770684/article/details/130018908https://blog.csdn.net/weixin_44770684/article/details/130018908
在生产环境有一个于构建镜像发布的docker服务器,该docker服务器是云主机,系统盘为40G,而docker默认的数据库目录为 /var/lib/docker ,使用的是系统盘做存储,随着时间的推移,该docker服务器存在的已构建的镜像越来越多,需要使用的存储空间也越来越多,导致该docker服务器系统盘没有足够的存储空间。
为了保证docker服务器有更多的存储空间,需要额外挂载一块数据盘到该docker服务器,并且更改该docker数据库目录到数据盘。
fdisk -l
fdisk /dev/vdb
[root@erp02 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xc227e904.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-209715199, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
Using default value 209715199
Partition 1 of type Linux and of size 100 GiB is set
Command (m for help): p
Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc227e904
Device Boot Start End Blocks Id System
/dev/vdb1 2048 209715199 104856576 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@erp02 ~]#
mkfs.ext4 /dev/vdb1
mount -t ext4 /dev/vdb1 /data
echo "/dev/vdb1 /data ext4 defaults 0 0" >> /etc/fstab
### 验证挂载已否成功,若是 mount -a 没有报错,说明挂载成功
mount -a
1、更新docker自定义数据目录,建议先停止docker应用,这样子更好的保证数据完整性,在复制过程中就不容易丢失数据。
## 停止 docker应用
systemctl stop docker
## 将docker 数据库目录以及其数据目录的所有数据迁移到新目录
cp -r /var/lib/docker /data/
2、修改docker默认数据存储目录配置,在/etc/docker/daemon.json文件添加 以下内容,若是没有/etc/docker/daemon.json文件,则新建该文件
## 新建docker配置文件
touch /etc/docker/daemon.json
## 编辑 配置文件添加 "data-root": "/data/docker"
vim /etc/docker/daemon.json
docker添加内容后见下图
3、重启docker应用
systemctl restart docker
4、确认docker数据储存目录已更改
docker info
由于已经将docker的存储数据迁移到新目录,则可以删除旧目录数据,但是我建议将目录数据保留一段时间后再删除,或者将该目录数据备份到其他地方
docker默认数据目录(旧目录): /var/lib/docker
docker自定义数据目录: /data/docker