0


更改docker数据目录

一、背景

    在生产环境有一个于构建镜像发布的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
标签: docker linux 运维

本文转载自: https://blog.csdn.net/weixin_44770684/article/details/126928992
版权归原作者 @土豆 所有, 如有侵权,请联系我们删除。

“更改docker数据目录”的评论:

还没有评论