• Centos7虚拟机硬盘扩容 + 修改Docker默认存储位置


    前言

    Vmware 虚拟机开机时提示:虚拟机根目录系统内存不足,可能原因是 /var/lib/docker 目录占用的磁盘空间不够了。本文记录虚拟机磁盘扩容过程和修改 docker 默认的存储位置。

    在这里插入图片描述

    在这里插入图片描述

    一、Centos7虚拟机硬盘扩容

    1.1 具体步骤

    1. 打开虚拟机设置 ->点击硬盘 -> 添加 ->硬盘 -> 选择SCSI(推荐) -> 创建新虚拟磁盘(V)

    在这里插入图片描述
    输入最大磁盘大小 40G -> 点击下一步

    默认指定磁盘文件后点击完成即可
    在这里插入图片描述

    重启虚拟机 -> 输入命令查看添加的磁盘信息,扩展完成

    fdisk -l
    
    • 1

    在这里插入图片描述

    二、修改Docker默认存储位置

    2.1 挂载目录

    2.1.1 接下来是给磁盘进行分区输入如下命令:

    fdisk /dev/sdb
    
    • 1

    我们可以使用m:显示所有命令,或者p:显示分区情况。接着,依次输入,n,p,1和两个回车,最后w保存退出即可。其中各个参数的含义如下:

    • n:设定一个新的分区
    • e:就是(extend)扩展分区
    • p:就是(primary)主要分区,我们这里选择P
    • 1-4:是分区编号,1到4都可以
    • w:保存
    [root@localhost huang.bx]# fdisk /dev/sdb
    欢迎使用 fdisk (util-linux 2.23.2)。
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    Device does not contain a recognized partition table
    使用磁盘标识符 0x463180ea 创建新的 DOS 磁盘标签。
    
    命令(输入 m 获取帮助):m
    命令操作
       a   toggle a bootable flag
       b   edit bsd disklabel
       c   toggle the dos compatibility flag
       d   delete a partition
       g   create a new empty GPT partition table
       G   create an IRIX (SGI) partition table
       l   list known partition types
       m   print this menu
       n   add a new partition
       o   create a new empty DOS partition table
       p   print the partition table
       q   quit without saving changes
       s   create a new empty Sun disklabel
       t   change a partition's system id
       u   change display/entry units
       v   verify the partition table
       w   write table to disk and exit
       x   extra functionality (experts only)
    
    命令(输入 m 获取帮助):n
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p
    分区号 (1-4,默认 1):1
    起始 扇区 (2048-83886079,默认为 2048)##回车即可
    将使用默认值 2048
    Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079)##回车即可
    将使用默认值 83886079
    分区 1 已设置为 Linux 类型,大小设为 40 GiB
    
    命令(输入 m 获取帮助):w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    正在同步磁盘。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    2.1.2 完成后,再次使用 fdisk -l 查看是否分区成功

    [root@localhost huang.bx]# mkfs.ext4 /dev/sdb1
    mke2fs 1.42.9 (28-Dec-2013)
    文件系统标签=
    OS type: Linux
    块大小=4096 (log=2)
    分块大小=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    2621440 inodes, 10485504 blocks
    524275 blocks (5.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=2157969408
    320 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
    	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    	4096000, 7962624
    
    Allocating group tables: 完成                            
    正在写入inode表: 完成                            
    Creating journal (32768 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    2.1.3 完成后,将分区挂载到新创建的目录

    mkdir -p /data/expand
    mount /dev/sdb1 /data/expand
    
    • 1
    • 2

    2.1.4 接下来使用命令,查看挂载的情况

    [root@localhost data]# df -h | grep dev/sdb1
    /dev/sdb1                 40G   49M   38G    1% /data/expand
    
    • 1
    • 2

    2.2.5 可以看到,该分区已经被挂载到了对应的目录。到目前为止,已经算是硬盘挂载完成,但是如果想要重启设备后挂载依旧生效,需要将挂载的信息写入文件 /etc/fstab 文件中。主要不要更改其他的内容。

    在这里插入图片描述

    2.2.6 reboot 重启虚拟机再次查看挂载情况,可以看到已经成功的永久挂载了

    [root@localhost huang.bx]# df -h | grep dev/sdb1
    /dev/sdb1                 40G   49M   38G    1% /data/expand
    
    • 1
    • 2

    2.2 修改路径

    2.2.1 首先查看docker的存储的根路径

    [root@localhost huang.bx]# docker info | grep "Docker Root Dir"
    Docker Root Dir: /var/lib/docker
    
    • 1
    • 2

    .2.2.2 可以看到目前Docker的路径为/var/lib/docker。接下来,需要将其更换到扩展了磁盘的/data/expand中。首先,关停docker。

    systemctl stop docker
    
    • 1

    .2.2.3 接着移动docker的文件到新目录下:mv /var/lib/docker/ /data/expand/,这一步需要等待一定的时间。完成后修改docker配置文件,设置默认存储的目录。然后使用命令,vim /usr/lib/systemd/system/docker.service,在尾部增加如下命令。

    --graph /data/expand/docker/
    
    • 1

    在这里插入图片描述

    2.2.4 重启 docker 查看容器

    [root@localhost overlay2]# systemctl start docker 
    [root@localhost overlay2]# docker ps -a
    CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
    3e97f4e59d4e   nginx:1.10            "nginx -g 'daemon of…"   4 months ago    Up 5 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp                                             nginx
    7d802c4f0eb0   kibana:7.4.2          "/usr/local/bin/dumb…"   9 months ago    Up 5 minutes   0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              kibana
    21fddd211b43   elasticsearch:7.4.2   "/usr/local/bin/dock…"   9 months ago    Up 5 minutes   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
    44edbbd9c776   redis                 "docker-entrypoint.s…"   18 months ago   Up 5 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                              redis
    d8b5351369dd   mysql:5.7             "docker-entrypoint.s…"   18 months ago   Up 5 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.2.5 查看 docker 挂载

    [root@localhost overlay2]# docker info | grep "Docker Root Dir"
     Docker Root Dir: /data/expand/docker
    [root@localhost overlay2]# 
    
    • 1
    • 2
    • 3
  • 相关阅读:
    Win10下Qt配置opencv/libtorch闭坑总结
    iNFTnews|Opensea上爆火的Art Gobblers为何引起巨大争议?
    1s 创建100G文件,最快的方法是?
    零基础Linux_7(进程)冯诺依曼结构+操作系统原理+进程的概念和基本操作
    漏洞扫描工具的编写
    Docker_设置docker服务以及容器开机自启
    pna肽核酸定制服务|肽核酸钳制-PCR(PNA-PCR)|cGAPPNA多价肽核酸配体
    数据结构之排序
    git pull
    AI赋能药物研发的偶然与必然
  • 原文地址:https://blog.csdn.net/m0_49692893/article/details/133219627