目录

一、背景

二、挂载数据库盘

        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数据库目录到数据盘。

二、挂载数据库盘

        1、 查看在云上挂载好的100G数据盘

fdisk  -l

         2、 数据盘vdb分区,使用到的分区命令为fdisk

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 ~]#

         3、 将已做好分区的数据盘格式化为ext4格式

mkfs.ext4 /dev/vdb1

         4、挂载数据盘

mount -t ext4 /dev/vdb1 /data

         5、写入开机自动挂载

echo "/dev/vdb1     /data      ext4    defaults       0 0"  >> /etc/fstab


### 验证挂载已否成功,若是 mount -a 没有报错,说明挂载成功

mount -a

三、更新docker数据目录

        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的存储数据迁移到新目录,则可以删除旧目录数据,但是我建议将目录数据保留一段时间后再删除,或者将该目录数据备份到其他地方

        docker默认数据目录(旧目录): /var/lib/docker

        docker自定义数据目录:        /data/docker

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐