目录
提示: 更深入的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
原文链接:https://blog.csdn.net/weixin_44770684/article/details/126928992?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836840916800211531517%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836840916800211531517&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-18-126928992-null-null.nonecase&utm_term=docker%E3%80%81%E5%A5%BD%E7%94%A8