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

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

(0)

相关推荐

  • Docker镜像构建原理解析(不装docker也能构建镜像)

    在devops流程里面 构建镜像是一个非常重要的过程,一般构建镜像是写dockerfile文件然后通过docker client来构建的image. docker client 会先检查本地有没有image,如果没有帮你 从镜像仓库 pull 下来 然后解析你写的dockerfile构建新的image. 本文带你了解 pull 命令 背后是怎么做的? build 命令 背后是怎么做的? 下篇文章带你解析: 如果我不用docker 我如何构建一个镜像? 我们以微软的aspnet2.2为基础构建一个

  • 删除docker images中为none的镜像操作

    由于平时一直使用docker build 命令才生成一个镜像,有时候由于代码跟新频繁就会产生很多的none的image,最近想着清除一下. 于是就写了以下脚本: docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm docker images|grep non

  • 使用脚本一键打包并上传docker镜像的实现代码

    笔者搞了一年多微前端项目,一个团队管理十个微应用,换成docker镜像部署后,发布操作一下从原来的脚本直连服务器的1分钟变成了几十分钟,尤其上传每个应用到各自的阿里云仓库.这里就再写个脚本一键打包docker镜像并上传阿里云. 本文只讲怎么制作一个脚本帮助去减轻开发人员负担,关于docker-compose的配置见: 使用各种姿势舒服的部署微前端项目(上:打包与上传) 效果图 直接上代码 /** * @name docker镜像打包上传脚本 * @author weilan * @time 20

  • Docker镜像的导入导出代码实例

    Docker镜像的导入导出 本文介绍Docker镜像的导入导出,用于迁移.备份.升级等场景,准备环境如下: CentOS 7.0 Docker 1.18 导入导出命令介绍 涉及的命令有export.import.save.load save 命令 docker save [options] images [images...] 示例 docker save -o nginx.tar nginx:latest 或 docker save > nginx.tar nginx:latest 其中-o和

  • docker镜像完全卸载的操作步骤

    1.docker ps -a查看运行的镜像进程 [root@mylinux~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 98acb9dcb2a2 redis:5 "docker-entrypoint.s-" 8 minutes ago Up 8 minutes 0.0.0.0:6379->6379/tcp redis 1b1ff7f08583 mysql:5.7 "docke

  • docker下载镜像太慢的解决方案

    docker下载镜像卡死或太慢 找了网上很多方法,使用镜像中国也是下载卡死. 最后一种成功了,下载速度很满意 1.先再阿里云注册账号 不需要绑定什么,直接注册就可以了,有账号的直接登录就好. 地址:https://cr.console.aliyun.com 点击跳转 搜索 容器镜像服务 2.创建镜像仓库 3.创建好之后点到这个选项卡 在终端输入 vim /etc/docker/daemon.json 将"registry-mirrors": ["https://......c

  • Docker和镜像的操作方法

    查找镜像 我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/ 我们也可以使用 docker search 命令来搜索镜像.比如我们需要一个 httpd 的镜像来作为我们的 web 服务.我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像. docker search httpd 拖取镜像 我们决定使用上图中的 httpd 官方版本的镜像,使用命令 docker pull 来下载镜像.

  • 使用docker build kit构建树莓派上可用的Docker镜像

    Docker安装 curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG ${user_name} build-kit是什么 参考build ARM based Docker Images 简单来说就是扩展docker build的一个实验性的功能 以bind为案例进行构建 docker-bind项目是一个开源的自定义DNS部署服务,但是并没有提供基于linux/aarch

  • 解决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% /v

  • 解决docker pull镜像报错的问题

    描述: 在win10下安装VM,在VM里运行docker,使用docker pull拉取镜像时报错 一. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 原因: 使用docker pull 命令拉取镜像时,如果不添加额外的信息如docker pull nginx

  • 解决docker pull镜像速度慢的问题的方法

    直接下载Docker镜像时,由于种种原因,经常下载失败,即使连接成功也是很慢,怎么办呢 目前我知道可以提升速度的办法:DaoCloud 提供Docker Hub Mirror服务 用户可以进入Docker Hub Mirror注册入口注册(https://account.daocloud.io/signin).在进入控制台页面后直接点击 启动你的加速器后,您即可得到一个Mirror的地址,将该地址配置在Docker Daemon的启动脚本中,重启Docker Daemon即可使得Docker H

  • 解决Docker Image镜像无法删除问题的方法

    前言 Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议.通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的应用运行环境.由于众多新颖的特性以及项目本身的开放性,Docker在不到两年的时间里迅速获得诸多IT厂商的参与,其中更是包括Google.Microsoft.VMware等业界行业领导者.同时,Dock

  • Docker push镜像失败解决方法

    Docker push镜像失败的问题. 以下是输入push自己的tomcat后出现了失败 [root@slave3 ~]# docker push lekkoliu/tomcat8:latest The push refers to a repository [docker.io/lekkoliu/tomcat8] cefee3f6c961: Preparing 82f021d9c2b9: Preparing 4f91f02b4e49: Preparing a4b3ce7e1d4a: Prepa

  • 谷歌技术人员解决Docker镜像体积太大问题的方法

    虚拟机的问题 最初,大家都使用虚拟机作为软件的运行环境,对外提供服务.为了在虚拟机上运行你的 Service,你不得不运行一大堆程序: 系统进程 定时任务 SSH 安装 Agent 安装 Bash 安装一大堆 libs 其实,你仅仅只是想让你的 Service运行起来,但你不得不维护一个 40GB的虚拟机. 然后你开始试用 Docker 开始试用 Docker,你毫不犹豫选择了和之前虚拟机一样的镜像:Ubuntu 1404,将之前的虚机的内容复制到了 Docker镜像,安装了一堆软件,最后发现你

  • 解决docker加载新的镜像后repository和tag名称都为none的问题

    可以使用命令: docker tag [image id] [name]:[版本] 例如: docker tag b03b74b01d97 docker-redis:0.0.1 补充知识:docker的save和load 我就废话不多说了,大家还是直接看代码吧~ 实战 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE clearlinux latest 32685d114002 7 days ago 62

  • 解决docker run 或者 docker restart 启动镜像就自动退出

    执行命令:docker run --name centos8 -d centos /bin/bash,通过docker ps查看正在运行中容器,找不到centos8. 通过docker ps -a查看发现,centos8容器已经处于停止状态了 [root@MiWiFi-R4A-srv server]$ docker run --name centos8 -d centos /bin/bash a770630ca865b3c3346a321a383f302ed22af9281be8482f4f4d

  • 解决docker拉取mysql镜像太慢的情况

    docker拉取mysql镜像半个小时依然没有成功,改用阿里云镜像加速器. 1.进入阿里云平台 链接: 阿里云控制台,镜像搜索mysql 复制加速器链接 2.进入虚拟机修改docker配置 vim /etc/docker/daemon.json 编辑代码 { "registry-mirrors": ["https://nsodgxr5.mirror.aliyuncs.com"] } 重启docker sudo systemctl daemon-reload sudo

  • 解决Docker之mysql容器数据库更改不生效的问题

    用官方的mysql 镜像需要修改一些内容,比如配置文件的修改,DB数据文件的目录等,更改之后如果重新运行容器,改过的文件就无效了,新生成的容器不会有之前改变的内容 第一种是修改官方下载的镜像,修改之后 提交一个新的镜像文件 docker commit -m 等新生成的镜像信息, 第二种MYSQL的DB数据,容器关闭后 如果用 docker restart 重启同一容器,那么数据是正常的,如果重新docker run 容器那么数据就不会显示,因为每个容器都有一个文件地址 这就需要把数据文件挂载出来

随机推荐