故事背景:
在服务器配置docker新镜像的时候,提示no space left on device,通过df -h发现是服务器的主要存储空间用完了,因此需要将docker相关的文件迁移到其他的磁盘,释放相应主存储空间
————————————————————————————————————————————————————
文件迁移:
参考https://forums.docker.com/t/how-do-i-change-the-docker-image-installation-directory/1169中的方法
首先停止所有的docker服务 service docker stop
确认下目前的docker目录 ls /var/lib/docker
然后备份原有的相关文件 tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz
接着进行文件的拷贝 mv /var/lib/docker /mnt/pd0/docker
然后在原地址设置数据链接 ln -s /mnt/pd0/docker /var/lib/docker
最后重启docker服务 service docker start
————————————————————————————————————————————————————
系统报错:
在最后重启docker服务的时候,系统报错
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details
通过journalctl -u docker.service查看了详细日志之后,发现问题是
level=error msg="[graphdriver] prior storage driver overlay2 failed: driver not supported"
failed to start daemon: error initializing graphdriver: driver not supported
—————————————————————————————————————————————————————
解决方案:
参考http://www.imooc.com/article/details/id/70557
在/etc/docker目录下的daemon.json文件中,进行相关内容的增加
{
xxxxxxxxxxxxxxxxxxx, #原有的部分
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
再重启服务,systemctl start docker(或者service docker start ,但也会重定向到括号外的命令),成功启动!
————————————————————————————————————————————————————
下一个问题:
成功启动docker服务后,不能加载镜像
查了docker官方文档后发现
overlay2存储驱动仅支持xfs和ext4,而我将docker相关文件移动到了ntfs系统中,两者并不兼容