解决docker images 镜像消失的问题
1、50,93存在镜像消失情况
[root@h50 /]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 24G 0 24G 0% /dev tmpfs 24G 0 24G 0% /dev/shm tmpfs 24G 428M 24G 2% /run tmpfs 24G 0 24G 0% /sys/fs/cgroup /dev/mapper/cl-root 50G 43G 8.0G 85% /
root剩下85%
overlay 50G 43G 8.0G
85% /var/lib/docker/overlay2/9e1d9bbd368c8ebafde39dcaaa66afecde95bfab7db51b13fe92aa5c7995cc9e/merged
镜像使用的是root下的空间
cat /var/lib/kubelet/config.yaml evictionHard: imagefs.available: 15% memory.available: 100Mi nodefs.available: 10% nodefs.inodesFree: 5%
imagesfs不足15%的会发生驱逐
应该是跟这个有关
尝试为root增加硬盘空间,从home上划分空间到root上
93上增加7个t的空间
在lv上给root增加空间
resize2fs /dev/mapper/centos-root 发生错误 xfs_growfs /dev/mapper/centos-root
数据备份
scp -r /home/ root@10.10.108.93:/root/home50/*
解除挂载
umount -l /home lvextend -L +80g /dev/centos/root
增加之后 需要xfs更新一下
xfs_growfs /dev/mapper/centos-root
无法挂载需要修复
xfs_repair /dev/cl/home
由于好几T 修复时间过长
删除lv home
lvremove /dev/centos/home
创建1.8t的lv home
lvcreate -n home -L 1.9T /dev/centos
格式化为xfs系统
mkfs.xfs /dev/centos/home
挂载
mount /dev/mapper/centos-home /home
恢复数据回来
增加home大小
lvextend -L +1.8t /dev/centos/home xfs_growfs /dev/mapper/cl-home
这时候恢复home大小
恢复数据回来
scp -r root@10.10.108.93:/root/home52/* /home/
2.减小
xfs是不支持减少的,无法使用lvreduce,但无法使用resize2fs,会报错:Couldn't find valid filesystem superblock。意思就是减少后的逻辑分区需要通过mkfs.xfs命令重新格式化一下,如果这个逻辑分区上有重要的文件就歇菜了~
只能去备份home下的文件了。
注意开机挂载
cat /etc/fstab
60上
lvreduce -L 5t /dev/centos/home lvextend -L +1.8t /dev/centos/root xfs_growfs /dev/mapper/centos-home
补充:docker 重启镜像没有了_Docker的常用镜像及使用方式
Docker作为眼下最流行的技术,已经越来越成为开发人员的必备技能。它可以方便的让我们快速的搭建起需要应用环境,像常用的redis、mq、tomcat、zookeeper、mysql、nginx镜像,在这里我总结一下使用方式,可以让你一篇文章就把这些知识点串链起来。
1. 拉取镜像
目前我常用的是国内的网易的镜像,下载速度非常快。
# docker pull rabbitmq:3-management --这个版本的有后台显示可以看到监控页
2. 查看镜像
拉取下来之后查看镜像,获得镜像id:
# docker images -----查看拉取的镜像
3. 启动镜像
启动镜像是非常关键的一步,各个不用应用的镜像的启动命令都有一定的差别,主要是端口的映射,下面的都是试验过,可以成功启动的镜像:
# docker run -d --name "xdclass_nginx" -p 8088:80 nginx --启动nginx # docker run -d --name "xdclass_rabbitmq" -p 5672:5672 -p 15672:15672 db695e07d0d --运行mq;-d是后台运行;-p是指定端口映射 # docker run -d --name xdclass_redis -p 6379:6379 d4f259423416 --启动redis容器,但实际redis没有启动 # docker exec -it ce388f800aed redis-cli ---docker中访问启动redis,it后面的是容器号。 # docker run -d --name myzookeeper -p 2181:2181 --restart always 5e8e3d7b06f9 --启动zookeeper镜像 # docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=rootroot -d 9e64176cd8a2. ----docker启动mysql,MYSQL_ROOT_PASSWORD后面的是启动设置的默认的root的密码。
4. 查看已经启动容器
# docker ps -a ---查看所有的容器,包括已经启动和未启动的容器 # docker ps. -----查看已经启动的容器。
5. Mysql的后续操作
Mysql的容器启动后,如果想通过navicat等客户端连接,还需要开通远程登录权限,下面是操作步骤:
第一步,在上面已经启动mysql容器后,进入容器:
# docker exec -it c8486ec93afb bash
第二步,登录mysql:
#mysql -u root -p ---中间会提示输入先前docker run的密码rootroot;
第三步:添加远程访问mysql的权限:
mysql> grant all privileges on *.* to root@'%' identified by 'rootroot' with grant option; mysql> flush privileges;
注意:新设置的远程访问的用户名:root ,密码:rootroot ;
6. 停止和重启容器命令
# docker stop 283138f62bc2 ---停止容器,容器号:283138f62bc2 # docker start 283138f62bc2 --启动已经建立的容器号:283138f62bc2 #docker stop $(docker ps -a -q) -- stop停止所有容器
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。