docker默认是把数据(images、containers等)保存在/var/lib/docker中,有的人根目录空间很有限,想给docker扩容,怎么办呢:

一种办法是:

#先停止docker daemon,然后把上述目录移动到/opt/data或者其他的有空间的目录下,
#最后在/var/lib下做个同名的docker软连接,指向/opt/data/docker
service docker stop(或者/etc/init.d/docker stop)
mv /var/lib/docker /opt/data
ln -s /opt/data/docker /var/lib/docker 

注意,我在执行上述命令时,一直无法删除/var/lib/docker,即使是root权限的rm -rf也不行,即使已经关闭了docker daemon。最终从这里找到解决办法:

https://github.com/moby/moby/issues/6077

在这里插入图片描述

即,/var/lib/docker是挂载到host的某个磁盘分区的(通过/proc/mounts可查),首先要umount该目录,然后在删除,这时候才可以删除,不然会一直提示“设备忙碌,无法删除”

随后在启动docker,通过查看/proc/mounts,可以发现,此时/var/lib/docker已经挂载到了/opt/data的那块分区上。All right!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐