如何给docker扩容
如何给docker扩容
参考文章:
- 动态扩容Linux根目录:/dev/mapper/centos-home分配部分空间给/dev/mapper/centos-root(/dev/mapper/centos-root经常会满,可是/dev/mapper/centos-home很空) - 金龟子大战猕猴桃 - 博客园 (cnblogs.com)
- Docker关闭不掉进程,Stopping docker.service, but it can still be activated by: docker.socket_warning: stopping httpd.service, but it can still _爱吃醋的小可爱的博客-CSDN博客
- Linux中fuser命令用法详解 - Tse先生 - 博客园 (cnblogs.com)
- 问题:INTERNAL ERROR: cannot create temporary directory及解决方法_cannot creat tempory-CSDN博客
具体步骤
在阅读本文时,笔者默认你已安装docker
和docker-compose
。
请切换至
root
用户,避免后续操作缺少相应的权限。1
2切换至root用户,然后输入密码
su root查看当前磁盘使用情况。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15查看磁盘
df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs
tmpfs
tmpfs
tmpfs
/dev/mapper/centos-root 50G 50G 16k 100% /
/dev/sda1
/dev/mapper/centos-home 957G 33M 957G 1% /home
overlay 50G 50G 16k 100% /data/lib/docker/overlay2/...
overlay 50G 50G 16k 100% /data/lib/docker/overlay2/...
......
tmpfs重点关注
/dev/mapper/centos-root
和/dev/mapper/centos-home
两个文件系统。如果你的服务器上的/dev/mapper/centos-root
和/dev/mapper/centos-home
叫做别的名称,请将下文中的/dev/mapper/centos-root
和/dev/mapper/centos-home
替换成你服务器上对应的名称。扩容思路
文件系统
/dev/mapper/centos-root
对应/
目录,文件系统/dev/mapper/centos-home
对应/home
目录。将/home
文件夹备份,删除/home
文件系统所在的逻辑卷,增大/
文件系统所在的逻辑卷,增大/
文件系统大小,最后新建/home
目录,并恢复/home
文件夹下的内容。关闭
docker
容器。1
2关闭docker容器
docker-compose stop如果提示
INTERNAL ERROR: cannot create temporary directory
,表明docker
磁盘已经用完,可以使用docker system prune
清理关闭的容器、无用的数据卷、网络和虚悬镜像,本文不对此进行赘述,请直接执行下一步的操作。关闭
docker
服务。1
2
3
4
5关闭docker服务
systemctl stop docker
查看docker状态
systemctl status docker如果输入
systemctl stop docker
后提示:Warning: Stopping docker.service, but it can still be activated by: docker.socket
,请先关闭docker
自动唤醒机制,然后再关闭docker
服务1
2关闭docker自动唤醒
systemctl stop docker.socket备份源目录文件。
1
2将/home目录打包放到/run目录下,也可以放在别的目录下,请保证该目录下磁盘空间充足
tar cvf /run/home.tar /home终止源目录下的进程。
1
2终止/home目录下的进程
fuser -km /home如果提示
fuser
命令不存在,如果安装fuser
提示磁盘不足请重试1
2安装fuser
yum install -y psmisc卸载源目录。
1
2卸载/home目录
umount /home删除源目录对应的逻辑卷。
1
2删除/home目录对应的/dev/mapper/centos-home逻辑卷
lvremove /dev/mapper/centos-home扩容目标逻辑卷。
1 | 给/dev/mapper/centos-root数据卷扩容100g |
扩大目标文件系统。
1
2扩大/dev/mapper/centos-root文件系统
xfs_growfs /dev/mapper/centos-root重建源目录对应的逻辑卷。
请注意,此处的大小800G,最好是填写原大小减去为
centos-root
扩容的大小1
2重建/dev/mapper/centos-home逻辑卷
lvcreate -L 800G -n/dev/mapper/centos-home重建源文件系统。
1
2创建/dev/mapper/centos-home文件系统
mkfs.xfs /dev/mapper/centos-home重新挂载源目录。
1
2挂载/dev/mapper/centos-home目录
mount /dev/mapper/centos-home恢复源目录中的内容。
1
2将备份文件解压
tar xvf /run/home.tar -C /再次查看当前磁盘使用情况。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15查看磁盘
df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs
tmpfs
tmpfs
tmpfs
/dev/mapper/centos-root 150G 50G 100G 33% /
/dev/sda1
/dev/mapper/centos-home 800G 33M 800G 1% /home
overlay 50G 50G 16k 100% /data/lib/docker/overlay2/...
overlay 50G 50G 16k 100% /data/lib/docker/overlay2/...
......
tmpfs重启服务器(如果重启
docker
成功则跳过,如果失败请重启服务器)。1
2重启服务器
reboot重启
docker
服务。1
2
3
4
5开启docker服务
systemctl start docker
查看docker状态
systemctl status docker如果之前关闭了
docker
自动唤醒机制,则进行恢复1
2开启docker自动唤醒
systemctl start docker.socket重启所有
docker
容器。1
docker-compose restart
删除
/run
下面的备份。1
rm -rf /run/home.tar