Docker: load镜像时提示(no space left device)解决方案
1. 背景
LZ花了几天时间配置了一套sever环境,期间无比痛苦真的,但是基本上配置完一次后一劳永逸,只要把对应的镜像load进服务器,就不用再配置环境了,虽然前期麻烦很多,但是无论换什么机器,LZ基本上可以是一键部署了,不过这也是刚刚学习的一个新技能,所以应用起来并不是很熟练,尤其是遇到使用gpu的一些问题,如驱动之类的问题,解决起来还是比较痛苦的,好啦,生活不就是这样嘛.
那么辛苦配置好的docker环境, lz使用save将其保存下来
docker save ID > your_image_name.tar
因为image比较大,还是需要挺长时间的
然后上传到服务器上使用
docker load < your_image_name.tar
满心欢喜以为可以创建一个容器,结果发现
no space left device
2. 解决方案
出现此问题一般是docker 根目录空间不足导致。可修改其 Docker Root Dir 的值,使其指向一个更大空间的目录即可,LZ通过
df -h
发现系统盘确实被用完了,但是home路径下还有空间,于是进行了如下操作
1. 查看docker 的根目录:
docker info
显示信息中有docker根目录的位置信息, Docker Root Dir: /var/lib/docker/
2. 查看目录所剩余空间
df -hl /var/lib/docker/
我把它改到/home/docker/lib/docker目录下
3. 创建目标目录
mkdir -p /etc/systemd/system/docker.service.d/
4. 创建配置文件
vi /etc/systemd/system/docker.service.d/devicemapper.conf
5. 录入配置信息
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker
6. 更新docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
7. 注意点
由于更换了docker 目录,以前下载的镜像需要转移到新目录下,建议直接删除原来的镜像,重新下载。所以这个建议在刚开始下载docker的时候就进行修改,避免后续的问题
参考地址