前言:在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
相关推荐
### CentOS7下Docker桥接网络配置详解 #### 一、背景介绍 Docker作为一种流行的容器化技术,为开发者提供了轻量级、可移植的容器环境。为了更好地管理容器之间的网络通信,理解Docker在网络配置方面的机制至关重要...
安装步骤参考:https://blog.csdn.net/chkai123/article/details/126229727 docker离线安装 arm架构下离线安装docker docker centos7离线安装docekr 离线安装docker arm架构下安装docker arm架构centos7安装docker
CentOS7 安装 Docker Docker 是一个流行的容器化平台,能够让开发者快速部署和运行应用程序。CentOS7 是一个流行的 Linux 发行版,本文档将介绍如何在 CentOS7 上安装 Docker。 一、卸载旧的 Docker 如果您之前...
centos7 docker镜像包
Centos7安装Docker详细安装
CentOS7 Docker防火墙的简单配置 禁用 firewalld 服务 systemctl disable firewalld systemctl stop firewalld 安装 iptables 防火墙服务 yum install iptables-services 创建 iptables 配置脚本 cat >> /usr/...
【docker_centos7】docker在centos7中如何安装??.md【docker_centos7】docker在centos7中如何安装??.md【docker_centos7】docker在centos7中如何安装??.md【docker_centos7】docker在centos7中如何安装??.md
Centos 6.9安装docker步骤,同步部署。自己整理容器实用。
环境:centos7.7_x86_64 1、虚拟机内存要稍大些至少2G 2、es需要修改linux宿主机的一些参数 设置vm.max_map_count=262144 vim /etc/sysctl.conf vm.max_map_count=262144 不重启, 直接生效当前的命令 ...
Linux_centos7_docker安装部署_linux_centos7_docker
Centos7系统 Docker 安装和使用教程(超详细附带常用的容器部署代码) 简介 Docker是一个开源的容器化平台,可帮助开发者轻松地创建、部署和运行应用程序。Docker使开发人员能够在一个独立的容器中打包应用程序及其...
linux CentOS7 下 Docker安装
CentOS下的docker-ce 18.06.1。docker-18.06.1-ce.tgz
Centos6.5 下Docker的安装与简单配置。。。。。。。。
CentOS7 Docker Tar镜像,
### 基于CentOS7的磁盘分区及扩容——Parted工具详解 #### 一、Parted工具介绍 在Linux环境下,对于磁盘管理的需求非常常见,包括但不限于磁盘分区、格式化、扩容等。Parted是一款强大的磁盘分区管理工具,它可以...
linux 安装docker centos7安装docker-engine.txt centos7安装docker-engine.txt
一键安装docker环境 初始化脚本喜欢的话可以收藏了用用
因此,了解如何在CentOS 7上进行磁盘扩容是一项重要的技能。本文将详细介绍在CentOS 7上扩容根目录的步骤,以及可能遇到的问题和解决方案。 1. **准备工作** 在扩容之前,你需要确保有一块未使用的硬盘或分区,...
介绍了CentOS安装Docker 的方法,欢迎下载