前言:在docker刚起步的时候,RHEL的内核并不支持AUFS作为docker的后端存储而将移植工作推迟。后来,红帽和docker合作开发一种基于Device Mapper技术的后端存储框架,也就是现在的device-mapper插件。
问题
systemctl start docker.service 提示启动失败。
分析
使用命令查看docker启动日志:
➜ # journalctl -xe
- 1
发现docker-pool容量不足,不能继续分配新的空间,错误信息如下:
Insufficient Free Extents for a docker-pool
- 1
由于centos上的docker使用存储池,也就是基于LVM的块系统,所以只要增加docker-pool的容量就可以解决问题了。
收集证据
不看日志不行,比如有没有闲置的硬盘?物理卷挂在哪个硬盘?卷组挂在那个物理卷上?逻辑卷各自有多大?
查看磁盘容量:
➜ # df -h
➜ # fdisk -l
- 1
- 2
查看物理卷(pv)信息:
➜ # pvscan
- 1
查看卷组(vg)信息:
➜ # vgdisplay
- 1
查看逻辑卷(lv)信息:
➜ # lvdisplay
- 1
解决问题
- 查看卷组(vg)的使用和卷组的物理卷(PV)的情况:
➜ # pvs -o+pv_used
- 1
发现sdc确没有剩余空间了,查询结果如下:
➜ # pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sdc2 VolGroup00 lvm2 a-- 558.69g 0 558.69g
- 1
- 2
- 3
-
新加一块硬盘就解决问题了。就怕没有新硬盘,需要重新划分区,move物理卷。
- fdisk /dev/sde;
- 创建主分区和扩展分区都行;
- 创建逻辑分区;这里有个坑,不创建逻辑分区是无法格式化硬盘的,格不了硬盘,pvcreate会报错。
- 格式化逻辑分区 mkfs.ext3 /dev/sde2;
-
创建物理卷
➜ # pvcreate /dev/sde2
- 1
- 为卷组VolGroup00添加新的物理卷sde2来增大卷组的容量
➜ # vgextend VolGroup00 /dev/sde2
- 1
- 用vg里新增的空间扩展LVM逻辑卷(lv)的大小
➜ # lvextend -L +1T /dev/VolGroup00/docker-pool
- 1
- 重启电脑,使划分生效,比较暴力好用(软刷新使用resizefs2)。
resize2fs /dev/VolGroup00/docker-pool
- 1
很不幸,执行resize2fs时报错了。直接reboot解决问题。
- 最后一步重启docker服务
systemctl start docker.service
- 1
终于要见到佛祖了,想想心里还有些小激动~~
然而启动又失败了,第一件事是做什么,还不赶紧看看日志!
journalctl -xe
- 1
发现172.17.0.1这个ip无法bind, 看了看网卡,日,docker0的虚拟net-card没了。
这里不卖关子了,大部分情况是/var/lib/docker下的配置出错了,解决方案有两种:
-
创建docker用户组,保证用户有足够的权限运行docker。
sudo usermod -aG docker $(whoami)
- 1
-
简单暴力我喜欢的方法,直接删掉/var/lib/docker,相当于重置docker的运行配置,重启解决问题。(友情提示:删除之前要备份,文件再拷贝过去就可以正常用了)
sudo service docker stop sudo rm -rf /var/lib/docker sudo service docker start
- 1
- 2
- 3
-
一切都平静了,去喝杯咖啡。
➜ # docker info Containers: 37 Running: 5 Paused: 0 Stopped: 32 Images: 365 Server Version: 1.10.3 Storage Driver: devicemapper Pool Name: VolGroup00-docker--pool Pool Blocksize: 524.3 kB Base Device Size: 107.4 GB Backing Filesystem: xfs Data file: Metadata file: Data Space Used: 263.7 GB Data Space Total: 1.388 TB Data Space Available: 1.124 TB Metadata Space Used: 35.59 MB Metadata Space Total: 604 MB Metadata Space Available: 568.4 MB Udev Sync Supported: true Deferred Removal Enabled: true Deferred Deletion Enabled: false Deferred Deleted Device Count: 0 Library Version: 1.02.107-RHEL7 (2016-06-09) Execution Driver: native-0.2 Logging Driver: json-file Plugins: Volume: local Network: bridge null host Kernel Version: 3.10.0-327.36.3.el7.x86_64 Operating System: CentOS Linux 7 (Core) OSType: linux Architecture: x86_64 Number of Docker Hooks: 2 CPUs: 24 Total Memory: 251.7 GiB Name: localhost.localdomain ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled Registries: 190087c6.m.daocloud.io (secure), docker.io (secure
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
docker storage pool再多说几句。因为是基于LVM的,所以镜像和容器都在块系统中,也就是VolGroup00这个池子里。/var/lib/docker主要存储的是镜像和容器的配置文件和device-mapper映射文件等,所以这个目录不会太大。
http://blog.csdn.net/counsellor/article/details/53413743
相关推荐
安装步骤参考:https://blog.csdn.net/chkai123/article/details/126229727 docker离线安装 arm架构下离线安装docker docker centos7离线安装docekr 离线安装docker arm架构下安装docker arm架构centos7安装docker
Centos7安装Docker详细安装
【docker_centos7】docker在centos7中如何安装??.md【docker_centos7】docker在centos7中如何安装??.md【docker_centos7】docker在centos7中如何安装??.md【docker_centos7】docker在centos7中如何安装??.md
Centos7系统 Docker 安装和使用教程(超详细附带常用的容器部署代码) 简介 Docker是一个开源的容器化平台,可帮助开发者轻松地创建、部署和运行应用程序。Docker使开发人员能够在一个独立的容器中打包应用程序及其...
用于centOs7下离线安装docker的离线安装包。 解压后得到三个rpm文件,根据libtool、docker-ce-selinux、docker-ce-17.03.2的顺序依次安装
CentOS7 Docker Tar镜像,
本文档以实战的形式介绍 Docker 的安装过程,使用的系统是 CentOS7,希望对大家有帮助! 如果有的话,卸载旧的Docker,否则可能会不兼容
docker容器的桥接网络实现
linux CentOS7 下 Docker安装
Centos6.5 下Docker的安装与简单配置。。。。。。。。
linux 安装docker centos7安装docker-engine.txt centos7安装docker-engine.txt
环境:centos7.7_x86_64 1、虚拟机内存要稍大些至少2G 2、es需要修改linux宿主机的一些参数 设置vm.max_map_count=262144 vim /etc/sysctl.conf vm.max_map_count=262144 不重启, 直接生效当前的命令 ...
一键安装docker环境 初始化脚本喜欢的话可以收藏了用用
离线环境下,在centos7.6系统上安装docker-ce-19.03,nvidia-docker2.4版本,其中docker-ce-19.03在docker-local.tar压缩文件里面,nvidia-docker2在nvidia-docker2.zip文件中。 具体安装流程如下: 1.安装docker ...
解压上传到服务器 安装docker sh install.sh docker-18.03.1-ce.tgz 卸载docker sh uninstall.sh 安装docker-compose sh docker-compose.sh docker-compose-Linux-x86_64 如有不明白的欢迎随时咨询
介绍了CentOS安装Docker 的方法,欢迎下载
官网的docker的离线安装包,直接rpm 安装即可使用。Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
centos 7离线安装docker的rpm包,可离线安装,给大家分享,安装方式: 注意顺序: rpm -ivh docker-engine-selinux-17.05.0.ce-1.el7.centos.noarch.rpm rpm -ivh docker-engine-17.05.0.ce-1.el7.centos.x86_64.rpm...
centos 7离线安装docker的rpm包,可离线安装,本人已安装使用,给大家分享,安装方式: 注意顺序: rpm -ivh docker-engine-selinux-17.05.0.ce-1.el7.centos.noarch.rpm rpm -ivh docker-engine-17.05.0.ce-1.el7....
Centos7安装Docker