- A+
思路:
1.扩容磁盘
2.将docker 安装文件迁移到扩容的磁盘中
3.迁移后需更改原有容器的文件的权限
问题描述
docker服务运行一段时间之后,发现某些功能无法访问
初步 定位磁盘空间已满(出现了很多次这种情况,所以要重视)
解决方案
1.删除日志腾出空间(可以临时解决问题,过几天可能还出现这种情况)
2.扩展docker磁盘的空间(要是安装centos磁盘空间比较大还是很有效的一种解决方案)
备注 (注意docker默认空间位置分配的磁盘大小,如系统是磁盘是很大的,但是在/var目录只有25G,见下图)
接下来就是修改默认配置
1.停止docker服务
systemctl stop docker
2.创建新的docker目录,执行命令df -h,找一个大的磁盘
如在 /opt目录下面建了/opt/docker/lib目录
mkdir -p /opt/docker/lib
3.迁移/var/lib/docker目录下面的文件到/opt/docker/lib
迁移后的完成docker路径:/opt/lib/docker
cp -r /var/lib/docker/ /opt/docker/lib/
4.配置 /etc/systemd/system/docker.service.d/devicemapper.conf
查看/etc/systemd/system/docker.service.d目录及devicemapper.conf是否存在。如果不存在,就新建
mkdir -p /etc/systemd/system/docker.service.d/
vi /etc/systemd/system/docker.service.d/devicemapper.conf
devicemapper.conf添加如下内容:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/opt/docker/lib/docker
5. 重启docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
6.确认Docker Root Dir修改是否已经生效
[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker info
...
Docker Root Dir: /opt/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
...
7.启动成功后,再确认之前的镜像是否还在
docker images
8.确认无误,可删除之前目录下的文件
修正后如下图所示(磁盘空间已经充足)