实验室服务器安装docker时全部默认安装了,使用一段时间后发现docker存储容器镜像的路径默认安装在/var/lib/docker中,服务器一共有两块盘,一块为1T作系统盘,一块16T挂载于/data,为避免后期docker占满 / ,所以要迁移docker默认的存储路径
一、查看当前docker的默认存储目录
docker info
二、停止docker服务
service docker stop
这样做有可能会报错
Warning: Stopping docker.service, but it can still be activated by: docker.socket
解决办法:
systemctl stop docker.socket
systemctl stop docker
三、目录迁移
3.1 先备份原有的docker(cp)
3.2 复制/var/lib/docker到你指定的目录
cp -r /var/lib/docker /data
我的docker目录已经有三百多个G了,复制很慢,可以使用
du -sh /var/lib/docker
du -sh /data/docker
来查看两个文件的大小,可以变相的感知复制进度,不然cp没个进度条,急死人
3.3 修改docker配置文件
vim /etc/docker/daemon.json
如果没有这个文件,可以直接创建
{
"registry-mirrors": ["http://hub-mirror.c.163.com"], //这个是docker源,配不配随意
"data-root": "/data/docker" //这个后面的路径改成你自己的
}
3.4、保存退出,然后重启 docker 服务
service docker start
3.5、检查docker存储路径是否配置成功
docker info
发现这个就好了
Docker Root Dir: 你的路径
3.6、启动成功后,再确认之前的镜像还在
docker ps -a
docker images
四、确定容器、镜像没问题后删除/var/lib/docker
rm -rf /var/lib/docker/*
这里有可能会报错
rm: cannot remove '/var/lib/docker/overlay2/cb30f7f2cf36ad8782bcd0f9c66aa976de7baabf1165729bf620a057f2c1daf8/merged': Device or resource busy
————————————————
这个问题是由于docker容器在创建的时候使用了网络挂载啥的,解决方法参考
无法删除docker目录(rm: 无法删除"/var/lib/docker/overlay/XXXXXXXXXXXXXX/merged": 设备或资源忙)_rm: 无法删除"docker/overlay2/da6581226d69cd7bb1c03fa23-CSDN博客
统统卸载后,再执行删除
五.docker exec 启动容器报错
不太懂这个原因,但是解决方法是docker restart 你的容器,然后就一切正常啦,也欢迎各路大神告诉真实原因啊,应该是那里的配置文件没有改吧文章来源:https://www.toymoban.com/news/detail-849417.html
参考文章:Docker 修改默认存储路径_docker修改默认的存储路径_docker修改存储路径_ascarl2010的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-849417.html
到了这里,关于ubuntu迁移docker默认存储路径的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!