今天在服务器上基于docker容器搭建mysql主从时,然后重启docker,发现容器启动不了了,报的错误是:"ERROR:cannot  create temporary directory!"。我的猜测应该就是磁盘空间满了,于是执行命令"df -h",出来的结果是挂载点/var/lib/docker/overlay/ 已用%为100%,真的是磁盘空间用完了。docker system prune

第一种方法:适合刚开始使用docker的用户

解决的思路:

#切换到根目录下
cd /
#查看内存最大
du -h --max-depth=1

由于没有修改docker的默认目录,docker默认目录空间太小了,用不了多久就会满了,docker中默认存放镜像和容器的目录是:/var/lib/docker/,确保自己服务器上没有docker,如果有但是不重要的情况下可以用先卸载重装,并修改默认路径。

一、卸载步骤:

1、首先搜索已经安装的docker 安装包

[root@localhost ~]# yum list installed|grep docker

或者使用该命令

[root@localhost ~]# rpm -qa|grep docker
docker.x86_64 2:1.12.6-16.el7.centos @extras
docker-client.x86_64 2:1.12.6-16.el7.centos @extras
docker-common.x86_64 2:1.12.6-16.el7.centos @extra

2 、分别删除安装包

[root@localhost ~]#yum –y remove docker.x86_64
[root@localhost ~]#yum –y remove docker-client.x86_64
[root@localhost ~]#yum –y remove docker-common.x86_64

3 、删除docker 镜像

[root@localhost ~]# rm -rf /var/lib/docker

4 、再次check docker是否已经卸载成功

[root@localhost ~]#dokcer 

如果没有搜索到,那么表示已经卸载成功。

二、重新安装docker步骤:

1、更新update到最新的版本

yum update //确保yum包最新

2、安装需要的软件包

yum install -y yum-utils  device-mapper-persistent-data lvm2

3、设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 

4、查看docker版本

yum list docker-ce --showduplicates|sort -r  

5、安装docker

yum  install  docker-ce-18.03.1.ce -y

6、设置docker开机自动启动和启动服务

#加入开机自启
systemctl enable docker
#启动
systemctl start docker

7、配置国内镜像

 vi /etc/docker/daemon.json { "registry-mirrors": ["http://hub-mirror.c.163.com"] }

三、修改docker容器默认存储路径

1)创建docker容器存放的路径

mkdir -p /usr/docker/lib
(2)停止Docker服务并迁移数据到新目录
systemctl stop docker.service
rsync -avz /var/lib/docker/ /usr/docker/lib/
(3)创建Docker配置文件
mkdir -p /etc/systemd/system/docker.service.d/
vim /etc/systemd/system/docker.service.d/devicemapper.conf[Service]
ExecStart=
ExecStart=/usr/bin/dockerd  --graph=/usr/docker/lib/

(4)重启Docker服务

systemctl daemon-reload
systemctl restart docker
(5)查看现在容器存放的目录
  docker info | grep "Dir"Docker Root Dir: /usr/docker/lib

四、安装docker-compose

1、下载

curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2、授权

chmod +x /usr/local/bin/docker-compose

3、版本信息

docker-compose --version

第二种方法:保守的做法

当然如果是自己线上出现这种情况,还是不要使用第一种方法冲动操作了。具体步骤如下:

1、停止docker服务。

systemctl stop docker; //每个liunx版本的命令不一样。

2、创建新的docker目录,执行命令df -h,找一个大的磁盘。我的是放在/usr目录下面,我的/usr目录大小最大。 我在 /usr目录下面建了 /usr/docker/lib目录,执行的命令是:

mkdir -p /usr/docker/lib

3、迁移/var/lib/docker目录下面的文件到 /usr/docker/lib下面

cp -R /var/lib/docker/* /usr/docker/lib/

注意:如果文件内容很多的话,为了确保成功最好是一个文件一个文件的拷贝。如果在拷贝过程中报“设备上没有空间”的错误,就使用mv剪切。

4、修改docker配置(/etc/systemd/system/docker.service.d/devicemapper.conf),在文件末添加 --graph=/home/docker/lib

devicemapper.conf文件的内容如下:

[Service]ExecStart=ExecStart=/usr/bin/dockerd --insecure-registry=私服地址 --graph=/usr/docker/lib

注意:如果/etc/systemd/system/docker.service.d/devicemapper.conf,这个路径找不到的话,就新建,新建之后加入内容,没有私服地址的话就可以去掉”--insecure-registry=私服地址”。

5、重载配置,重启docker

systemctl daemon-reload;systemctl restart docker;systemctl enable docker;

6、启动成功后,确定容器没问题后删除/var/lib/docker/目录中的文件,然后就OK了。

Docker磁盘空间满的解决办法相关推荐

  1. Linux磁盘空间使用率100%解决办法

    Linux磁盘空间使用率100%解决办法 磁盘空间使用率很高的解决办法 事情发生的原因 方法一:删除未被进程引用的大文件. 方法二:删除被磁盘引用的大文件 总结 磁盘空间使用率很高的解决办法 事情发生 ...

  2. Docker磁盘空间不足如何解决

    当我们使用docker时,经常会创建新镜像和新容器,在新容器中又会安装各种包,这些东西不是虚拟的,而是实实在在存于我们的磁盘中,默认在/var/lib/docker中,这个目录是属于系统盘的,而系统盘 ...

  3. 使用硬盘空间少的linux系统,linux磁盘空间不足的解决办法

    一些linux系统电脑用户在使用一些应用程序的时候,会被提醒:磁盘空间不足的问题,因此,就有网友想知道:linux查看磁盘空间的方法,以及linux磁盘空间不足的原因和解决方法.下面,就一起来看看今天 ...

  4. No space left on device 磁盘空间提示不足解决办法

    首先先要解释什么是inode? inode在linux中,每个文件,不管大小是多少都会对应一个inode,inode就是一个专门用来保存文件属性,权限和指针(指向block) inodex满了会导致什 ...

  5. 磁盘空间不足的解决办法

    先说一下用于磁盘空间快满时检查 很多小伙伴会想到find  ,这个想法是好的,不过find 有点慢,也不方便,例如: find /home1 -type f -size +1000000k 如果我们这 ...

  6. 虚拟机linux磁盘空间不足的解决办法

    今天用ssh登陆sqlplus时,报了下面磁盘空间不足的错误: [oracle@orcl ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - ...

  7. linux 根目录磁盘占满,linux磁盘空间满,解决方法

    1.查看磁盘使用情况 [root@localhost ~]# df -h ?? 文件系统             容量  已用  可用 已用% 挂载点 /dev/mapper/cl-root   50 ...

  8. mysql 临时文件写满_阿里云数据库MySQL临时文件导致实例空间满的解决办法

    MySQL实例可能会由于查询语句的排序.分组.关联表产生的临时表文件,或者大事务未提交前产生的binlog cache文件,导致实例空间满,为避免数据丢失,RDS会对实例进行自动锁定,磁盘锁定之后,将 ...

  9. No space left on device 解决Linux系统磁盘空间满的办法

    No space left on device 原因是磁盘空间满了 1.查看是否存在未被清除句柄的僵尸文件.这些文件实际上已经被删除,但是有服务程序在使用这些文件,导致这些文件一直被占用,无法释放磁盘 ...

最新文章

  1. python迅雷远程下载页面_【教程】Chrome浏览器添加迅雷下载支持
  2. 把文本以图片的形式保存
  3. find : 路径必须在表达式之前
  4. linux怎么锁定test用户,用户被锁定不影响JOB的运行
  5. 转载 - 整数划分问题
  6. 保守官僚 诺基亚就这样迷失在智能机时代?
  7. php文本框自动补全,PHP自动补全表单的两种方法
  8. C语言 数组排序 – 快速法排序 - C语言零基础入门教程
  9. python开发环境anaconda3_Python环境管理(Anaconda3)
  10. 百万在线的美拍直播弹幕系统架构实现
  11. JS一秒区分clientX,offsetX,screenX,pageX之间关系
  12. Ubuntu 16.04服务器 软件的安装及配置
  13. IE6之各种不适记录
  14. IGP-LAB-EIGRP-1
  15. 【代码优化】构造器参数繁多时候,考虑使用builder模式
  16. 使用 charles 进行抓包
  17. linux网络适配器驱动程序怎么安装,如何安装网卡驱动_如何重新安装网卡驱动
  18. 如何下载安装fireBug
  19. CSS冻结单元格(新增滚动阴影效果)
  20. 我说CMMI2.0之:详细剖析(PQA)过程质量保证

热门文章

  1. 音频文件按照正常语句,断句拆分的处理方法
  2. 将 ChatGPT 引入你的飞书
  3. 数据结构期末大题速成
  4. 小学计算机少年宫活动计划,少年宫活动计划
  5. 什么是知识图谱?通俗易懂
  6. 实验六 文本串的加密解密
  7. 基于Python的微信好友男女比例,区域排名,签名情感分析
  8. 脚踏实地小组的实验一
  9. 【CS231n】斯坦福大学李飞飞视觉识别课程笔记(五):图像分类笔记(下)
  10. 计算机操作中常用的几种快捷方式,常用的30个电脑快捷操作技巧