Docker 数据目录迁移
背景
docker 的默认数据存储目录是 /var/lib/docker,随着 docker 的使用,镜像、容器越来越多,日志文件越来越大
你的盘慢慢的就被撑爆了 💥
让我们查看下容器日志文件,ES 的容器日志居然有 4G,OMG
迁移
先把 docker 服务停掉
systemctl stop docker
将原数据迁移至新目录下
rsync -avzP /var/lib/docker [your/data/path]
后面有两种方法自行选择
方法一:软连接
不修改配置,将新地址通过软连接的形式映射到原地址
# 备份原数据
mv /var/lib/docker /var/lib/docker.bak
# 添加软连接
ln -s [your/data/path]/docker /var/lib/
# 重启docker
systemctl start docker
# 确认之前的镜像是否存在
docker images
# 确认docker 能正常运行后,删除备份数据目录
rm -rf /var/lib/docker.bak
方法二:修改默认存储路径
# 修改存储地址,如果文件不存在则需要手动创建
vim /etc/docker/daemon.json
新增以下信息
{
"data-root": "[your/data/path]/docker"
}
警告
这里要特别注意 json 的格式
# 重启docker
systemctl daemon-reload
systemctl start docker
# 查看 docker 目录是否已被修改
docker info | grep "Docker Root Dir"
# 确认之前的镜像是否存在
docker images
# 确认docker 能正常运行后,删除原数据目录
rm -rf /var/lib/docker
赠品
附赠两个常用命令
# 删除所有未被标记tag的镜像,即名为 none的镜像
docker image prune
# 查看容器日志大小
find /var/lib/docker/containers/ -name *-json.log | xargs du -sh
PREV
Docker 常用命令
NEXT