此文章为转载加总结;
保存镜像tar包,显示 设备空间不足,如何解决?参考链接:https://blog.youkuaiyun.com/niu_hao/article/details/78873076
1. 用df -Th查看磁盘使用情况;
2. docker ps -s 查看容器大小,验证数据卷是否设置成功,若容器增长较大,说明没有成功。
3.查看docker默认目录有没有改,docker默认目录空间太小了,用不了多久就会满。docker中默认存放镜像和容器的目录是:/var/lib/docker/。解决办法就是迁移默认目录/var/lib/docker下面的所有文件到新的目录下面,然后将docker存放镜像和容器的目录改为新的目录。
我的系统是Centos7,解决的具体步骤如下:
1、停止docker服务。
systemctl stop docker; //每个liunx版本的命令不一样。
2、创建新的docker目录,执行命令df -h,找一个大的磁盘。我的是放在/home目录下面,我的/home目录大小有20G。 我在 /home目录下面建了 /home/docker/lib目录,执行的命令是:mkdir -p /home/docker/lib
3、迁移/var/lib/docker目录下面的文件到 /home/docker/lib下面
cp -R /var/lib/docker/* /home/docker/lib/
注意:如果文件内容很多的话,为了确保成功最好是一个文件一个文件的拷贝。如果在拷贝过程中报“设备上没有空间”的错误,就使用mv剪切。
4、修改docker配置(/etc/systemd/system/docker.service.d/devicemapper.conf,这个路径根据系统不同而不同,也可能是/usr/lib/systemd/system)。
在ExecStart末添加--graph=/home/docker/lib。
devicemapper.conf文件的内容如下:
[Service]
ExecStart=/usr/bin/dockerd --insecure-registry=私服地址 --graph=/home/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了。