迁移docker工作目录
目的:为了解决 /var/lib/docker/overlay2
占用大 /var
分区空间不够问题
一、查看docker默认目录的方法
docker默认目录为/var/lib/docker
,可以通过下面的方法查看:
docker info |grep "Docker Root Dir"
二、停止docker服务并移动原有docker文件到新目录
systemctl stop docker
mkdir -p /home/1panel/docker-overlay2/docker
mv /var/lib/docker /home/1panel/docker-overlay2
三、重新设置 Docker Root Dir
vim /usr/lib/systemd/system/docker.service
在 ExecStart=/usr/bin/dockerd
后追加 --data-root=/opt/soft/docker
示例如下:
ExecStart=/usr/bin/dockerd --data-root=/opt/soft/docker -H fd:// --containerd=/run/containerd/containerd.sock
四、重新加载配置启动服务
systemctl daemon-reload #重新加载配置
systemctl restart docker #重启
然后可以重复第一步确认结果,即完成迁移。
在 deamon.json 中的更多配置示例参考,包含日志配置:
{
#docker数据目录
"data-root":"/opt/soft/docker",
#docker存储的类型
"storage-driver":"overlay2",
#docker日志记录级别
"log-level":"INFO",
#docker日志驱动程序
"log-driver":"json-file",
#dockr驱动程序选项
"log-opts": {
"max-size": "10m",
"max-file":"5"
},
#docker加速
"registry-mirrors":["http://hub-mirror.c.163.com"]
}
附其他几个相关命令
类似于Linux上的df命令,用于查看Docker的磁盘使用情况
用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
清理得更加彻底,可以将没有容器使用Docker镜像都删掉(请慎重操作)
列出所有虚悬(dangling)镜像,也就是 TAG 为 <none> 的
docker images -f dangling=true