docker启动elk打开kibana时,发现一只提示空间不足。查看了docker的存储空间,/var/lib/docker下的目录已经满了。
解决方案:原本打算在虚拟机里面再给他一块硬盘,后来发现sda硬盘还有一些7个G的空间没用完,就分配7个G的空间专门给docker。
挂载的概念
挂载是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下;也就是说进入该目录就可以读取该分区的意思。
观察磁盘分区状态
使用命令lsblk(list block device)列出所有的存储设备
之前是没有sda3这个分区的,这个是我们要添加的7个G的分配给docker 的。
使用fdisk -l命令
从这幅图上可以看到,一共有41943040个扇区,sda1使用2048开始的,sda2从411648开始的,25593855结束。还有25593856-41943040这些个空间没有被使用。
MBR分区表要用fdisk命令来分区,GPT分区表使用gdisk命令来分区
可以使用命令parted来获取分区表的格式。
从第一幅图知道,sda1和sda2是从/dev/sda硬盘上分区的,所以这一步我们的命令就是fdisk /dev/sda,输入m可以达到命令的列表
n创建一个分区即可,后面就是简单的操作便可以创建出一个分区。在选择分区结束为止的时候直接输入 +7G,表示我这个分区大小是7个G。
创建完之后按w保存退出。
使用partprobe -s命令更新内核的分区表信息
对分区挂载
输入 mkfs.ext4 /dev/sda3对我这个分区进行格式化。
然后创建文件夹mkdir /dockerdata
mount /dev/sda3 /dockerdata 便可以成功挂载分区
docker的操作
来源于https://my.oschina.net/u/2552765/blog/3224548
1.停止docker服务。
systemctl stop docker
2.创建新的docker目录。
mkdir -p /dockerdata/lib
3.迁移/var/lib/docker目录下的文件到新创建的目录
rsync -avz /var/lib/docker /dockerdata/lib/
4.编辑 /etc/docker/daemon.json 添加如下参数
{
"registry-mirrors": ["阿里云镜像地址"],
"graph": "/dockerdata/lib/docker"
}
5.重新加载docker,并重启docker服务
systemctl daemon-reload && systemctl restart docker
6.检查docker是否变更为新目录/data/docker/lib/docker
输入命令docker info,查看Docker Root Dir是不是自己定义的目录 。
7.删掉docker旧目录
rm -rf /var/lib/docker