解决docker images 镜像消失的问题

 更新时间:2021年3月19日 15:00  点击:2070

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停止所有容器

以上为个人经验,希望能给大家一个参考,也希望大家多多支持猪先飞。如有错误或未考虑完全的地方,望不吝赐教。

[!--infotagslink--]

相关文章

  • docker 启动elasticsearch镜像,挂载目录后报错的解决

    这篇文章主要介绍了docker 启动 elasticsearch镜像,挂载目录后报错的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-20
  • 解决Docker中的error during connect异常情况

    这篇文章主要介绍了解决Docker中的error during connect异常情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-22
  • 教你使用Portainer管理多台Docker容器环境的方法

    这篇文章主要介绍了Portainer管理多台Docker容器环境,本文给大家介绍的非常详细,包括环境准备及管理docker的详细过程,需要的朋友可以参考下...2021-11-11
  • docker部署confluence的完整步骤

    这篇文章主要介绍了docker部署confluence的完整步骤,这里的镜像并不是小编自己写的是基于他人打包的文中有详细介绍,需要的朋友可以参考下...2021-06-11
  • docker swarm外部验证负载均衡时不生效的解决方案

    这篇文章主要介绍了docker swarm外部验证负载均衡时不生效的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-27
  • 解决docker挂载的目录无法读写问题

    这篇文章主要介绍了解决docker挂载的目录无法读写问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-19
  • docker端口映射及外部无法访问问题

    这篇文章主要介绍了docker端口映射及外部无法访问问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-19
  • Docker 解决openjdk容器里无法使用JDK的jmap等命令问题

    这篇文章主要介绍了Docker 解决openjdk容器里无法使用JDK的jmap等命令问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-04
  • 一条命令重启所有已停止的docker容器操作

    这篇文章主要介绍了一条命令重启所有已停止的docker容器操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-20
  • 使用rpm安装指定版本docker(1.12.6)的详细步骤

    为了防止安装高版本的docker引发的错误,需要安装1.12.6版本的docker,下面小编给大家带来了使用rpm安装指定版本的docker(1.12.6)的步骤,感兴趣的朋友一起看看吧...2021-08-11
  • 一文搞定Docker安装ElasticSearch的过程

    通过本文可以帮助大家快速学习Docker安装ElasticSearch的过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-08-31
  • 在docker中执行linux shell命令的操作

    这篇文章主要介绍了在docker中执行linux shell命令的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-30
  • docker容器与宿主机的数据交互方式总结

    这篇文章主要给大家介绍了关于docker容器与宿主机的数据交互,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-09
  • 安装Docker Desktop报错WSL 2 installation is incomplete的问题(解决报错)

    这篇文章主要介绍了安装Docker Desktop报错WSL 2 installation is incomplete的问题,解决方法很简单只需我们自己手动更新一下,我们根据提示去微软官网下载最新版的wsl2安装后即可正常打开,需要的朋友可以参考下...2021-06-13
  • 详解如何使用Docker部署Django+MySQL8开发环境

    这篇文章主要介绍了详解如何使用Docker部署Django+MySQL8开发环境,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-07-19
  • Docker部署Rancher的方法(无坑)

    这篇文章主要介绍了Docker部署Rancher的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-06
  • .NET 5 部署在docker上运行的方法

    这篇文章主要介绍了.NET 5 部署在docker上运行的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-06
  • Shell脚本构建Docker 半自动化编译打包发布应用操作

    这篇文章主要介绍了Shell脚本构建Docker 半自动化编译打包发布应用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-30
  • Docker配置PHP开发环境教程

    现在很多开发者都使用Vagrant来管理他们的虚拟机开发环境,Vagrant确实很酷, 不过也有不少缺点(最主要的是它占用太多的资源)。在容器技术、Docker和更多类Docker技术出现后,解决这个问题就变得简单了。这篇文章主要介绍了Docker配置PHP开发环境,下面来一起看看吧。...2017-01-08
  • docker cp 拷贝文件 和 进入容器的操作

    这篇文章主要介绍了docker cp 拷贝文件 和 进入容器的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-25