docker overlay扩容问题

 更新时间:2024年05月23日 08:55:12   作者:waani  
这篇文章主要介绍了docker overlay扩容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

背景

Docker安装了GitLabMySQLRedis等,随着使用overlay文件系统使用率已接近100%,导致写不了数据。

备份

一定要做好备份,弄错了还能恢复,弄这个分区经常搞坏系统然后恢复继续造[狗头]

1 新建分区扩容的方式

查看Docker的目录

[root@localhost ~]# docker info | grep 'Docker Root Dir'
 Docker Root Dir: /var/lib/docker

查看分区

[root@localhost dev]# fdisk -l

...
   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   209715199   103808000   8e  Linux LVM
...

创建分区

[root@localhost ~]# fdisk /dev/sda

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
   
Select (default p): p

分区号 (3,4,默认 3):3

# 这里设置扩容大小
# ...

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。

格式化新建分区

mkfs -t ext4 /dev/sda3

挂载Docker目录

# 停止Docker
mkdir /tmp/docker                        #创建临时目录
mount /dev/sda3 /tmp/docker              #将临时目录挂载到新分区
cp -r /var/lib/docker/* /tmp/docker      #将docker目录中的所有文件拷贝到临时目录

umount /dev/sdb3                         #卸载新分区
mount /dev/sdb3 /var/lib/docker          #将目录挂载到新分区

开机挂载

# 查看创建的分区ID
ls -l /dev/disk/by-uuid/ 
总用量 0
lrwxrwxrwx. 1 root root 10 10月 31 11:26 xxxxfc7d-xxxx-40ad-xxxx-xxxxa796xxxx -> ../../sda3

# add UUID
vim /etc/fstab

# add
UUID=4f3bfc7d-d0fa-40ad-a0fc-7dc9a796b8de /var/lib/docker auto defaults 0 0

2 直接扩容挂载根目录文件系统的方式

查看文件系统

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G   47G  3.4G   94% /
overlay                   50G   47G  3.4G   94% /var/lib/docker/overlay2/xxx/merged

# 查看挂载类型
[root@localhost ~]# mount | grep root
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)

调大文件系统大小

  • ext2/ext3/ext4 文件系统的调整命令是 resize2fs(增大和减小都支持)
lvextend -L 120G /dev/mapper/centos-root          //增大至120G
lvextend -L +20G /dev/mapper/centos-root          //增加20G
lvreduce -L 50G /dev/mapper/centos-root           //减小至50G
lvreduce -L -8G /dev/mapper/centos-root           //减小8G
resize2fs /dev/mapper/centos-home                 //执行调整
  • xfs 文件系统的调整命令是 xfs_growfs(只支持增大)
lvextend -L 120G /dev/mapper/centos-root          //增大至120G
lvextend -L +20G /dev/mapper/centos-root          //增加20G
xfs_growfs /dev/mapper/centos-root                //执行调整
# 调大到300G
lvextend -L 300G /dev/mapper/centos-root 

# 执行
xfs_growfs /dev/mapper/centos-root 

# 再次查看文件系统
df -h
# --- --- ---
文件系统                 容量  已用  可用 已用% 挂载点

/dev/mapper/centos-root  300G   47G  254G   16% /
overlay                  300G   47G  254G   16% /var/lib/docker/overlay2/xxx/merged

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解使用 docker compose 部署 golang 的 Athens 私有代理问题

    详解使用 docker compose 部署 golang 的 Athens 私有代理问题

    这篇文章主要介绍了使用 docker-compose 部署 golang 的 Athens 私有代理,帮助大家快速学习athens 如何构建私有代理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Docker 运行多个Springboot的详细教程

    Docker 运行多个Springboot的详细教程

    这篇文章主要介绍了Docker 运行多个Springboot的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Docker如何修改正在运行的容器的时区和时间

    Docker如何修改正在运行的容器的时区和时间

    在Docker容器中修改时区和时间的步骤:1. 进入容器,使用dockerexec命令以root用户身份进入,2. 安装时区文件,根据基础镜像选择合适的包管理器(如apt-get或apk),3. 设置时区,通过创建软链接或设置环境变量TZ,并更新系统时区
    2025-01-01
  • k8s手动拉取docker镜像的方法示例

    k8s手动拉取docker镜像的方法示例

    docker是一种便捷的容器化解决方案,它可以通过拉取镜像的方式轻松地部署和管理应用程序,本文主要介绍了k8s手动拉取docker镜像的方法示例,感兴趣的可以了解一下
    2024-02-02
  • 使用Docker容器化Flask应用的简单示例

    使用Docker容器化Flask应用的简单示例

    在当今的软件开发中,容器化技术已经变得不可或缺,Docker 作为容器化领域的佼佼者,为开发者提供了一种高效、便捷的方式来部署和运行应用程序,本文将通过一个简单的 Flask 应用示例,展示如何使用 Docker 将 Python 应用程序容器化,需要的朋友可以参考下
    2025-09-09
  • CentOS 7中安装Docker和Docker Compose的完整操作步骤

    CentOS 7中安装Docker和Docker Compose的完整操作步骤

    这篇文章主要介绍了在CentOS 7系统上安装Docker和Docker Compose的步骤,包括环境准备、卸载旧版本、安装Docker、配置镜像加速以及安装和验证Docker Compose,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • Docker基础教程之Dockerfile语法详解

    Docker基础教程之Dockerfile语法详解

    这篇文章主要给大家介绍了关于Docker基础教程之Dockerfile语法的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Docker具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • 详解Docker 国内镜像的配置及使用

    详解Docker 国内镜像的配置及使用

    这篇文章主要介绍了详解Docker 国内镜像的配置及使用 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Docker部署PostgreSQL+PostGIS服务的实现

    Docker部署PostgreSQL+PostGIS服务的实现

    本文介绍了如何使用Docker快速部署PostgreSQL,并手动安装PostGIS模块,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-12-12
  • docker部署zabbix_agent的方法步骤

    docker部署zabbix_agent的方法步骤

    这篇文章主要介绍了docker部署zabbix_agent的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10

最新评论