Docker 的 overlay2 扩容教程

简介: Docker 的 overlay2 扩容教程

原因

服务器中部署的软件系统太多,而 Docker 中 overlay2 默认容量太小,当其爆满时导致部署的系统软件无法正常使用


显示文件系统的磁盘使用情况
# 显示文件系统的磁盘使用情况
df -h

image.png


解决方案

overlay2 扩容

overlay2 扩容有2种方案:

1. 迁移/var/lib/docker数据,创建软连接:

这种方法简单快捷,只需要将/var/lib/docker目录中的数据迁移到新的位置,并在原来的位置创建一个符号链接指向新的位置。这样 Docker 仍然会认为数据存储在原来的位置,对Docker本身的操作和配置没有影响,因此相对来说比较安全。

但是,如果有其他程序直接依赖于/var/lib/docker目录,可能会导致一些问题。

2.迁移/var/lib/docker数据,修改 Docker 配置文件:

这种方法需要修改 Docker 的配置文件,将 Docker 的运行路径指定为新的位置,通常需要编辑Docker 的 systemd 配置文件或者 Docker 配置文件来实现。这种方法需要对 Docker 的配置文件进行修改,因此操作相对来说更加复杂,但可以更彻底地改变 Docker 的运行路径。

这种方法对Docker本身的配置和操作有一定影响,如果配置不正确可能会导致 Docker 无法正常启动。


本文使用的是第二种。

一、停止所有容器

# 停止所有容器,避免迁移时影响业务
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

二、备份 Docker 默认运行目录

cp /var/lib/docker /var/lib/docker-backup -r

三、切换 Docker 默认运行目录

# 通过剪切实现切换 Docker 默认运行目录
mv /var/lib/docker <挂载的目录>

四、修改docker配置文件,添加 “data-root” 路径

# 编辑 Docker 配置文件
vim /etc/docker/daemon.json

// 在文件中增加参数
"data-root": "/data/sdb1/docker"

image.png

如果不存在daemon.json文件,可以自行创建注意json格式


五、重启 Docker 服务

# 重新加载systemd的配置文件,以便systemd可以读取最新的配置。
systemctl daemon-reload
# 重启 Docker 服务
systemctl restart docker
# 查看 Docker 服务状态
systemctl status docker

六、查看磁盘情况

df -h

image.png

目录
相关文章
|
1月前
|
Oracle 关系型数据库 数据库
|
1月前
|
关系型数据库 MySQL Java
Docker Compose详细教程(从入门到放弃)
Docker Compose详细教程(从入门到放弃)
357 0
|
1月前
|
关系型数据库 MySQL 数据库
百度搜索:蓝易云【【Docker】Docker部署Mysql并设置数据持久化教程】
通过以上步骤,您已经成功地在Docker中部署了MySQL,并设置了数据持久化,确保数据在容器重新启动或迁移时得以保留。
66 0
|
1月前
|
大数据 数据管理 Docker
【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解
【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解
354 0
|
18天前
|
Docker 容器
尚硅谷2024新版3小时速通Docker教程
尚硅谷2024新版3小时速通Docker教程
12 1
尚硅谷2024新版3小时速通Docker教程
|
20天前
|
存储 Docker 容器
记录Docker搭建私有仓库的步骤教程
记录Docker搭建私有仓库的步骤教程
59 0
|
1月前
|
关系型数据库 MySQL 数据库
docker 安装mysql(踩坑踩得想哭 详细解决教程)ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using pa
docker 安装mysql(踩坑踩得想哭 详细解决教程)ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using pa
103 1
|
1月前
|
jenkins Java 持续交付
Docker搭建持续集成平台Jenkins最简教程
Jenkins 是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目。在本文中,我们将使用 Docker 搭建一个基于 Jenkins 的持续集成平台。
196 2
|
1月前
|
Ubuntu Docker 索引
ubuntu 20.04 安装docker教程和安装中遇到的问题解决方案(超详细 附加图文教程)
ubuntu 20.04 安装docker教程和安装中遇到的问题解决方案(超详细 附加图文教程)
214 0
|
1月前
|
JavaScript Java jenkins
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
146 0