:::danger 亲,你的磁盘满了~ ::: image.png

背景

docker 的默认数据存储目录是 /var/lib/docker,随着docker的使用,镜像、容器越来越多,日志文件越来越大
你的盘慢慢的就被撑爆了💥
image.pngimage.png
让我们查看下容器日志文件,ES 的容器日志居然有 4G,OMG

迁移

先把 docker 服务停掉

  1. systemctl stop docker

将原数据迁移至新目录下

  1. rsync -avzP /var/lib/docker [your/data/path]

后面有两种方法自行选择

方法一:软连接

不修改配置,将新地址通过软连接的形式映射到原地址

  1. # 备份原数据
  2. mv /var/lib/docker /var/lib/docker.bak
  3. # 添加软连接
  4. ln -s [your/data/path]/docker /var/lib/
  5. # 重启docker
  6. systemctl start docker
  7. # 确认之前的镜像是否存在
  8. docker images
  9. # 确认docker 能正常运行后,删除备份数据目录
  10. rm -rf /var/lib/docker.bak

方法二:修改默认存储路径

  1. # 修改存储地址,如果文件不存在则需要手动创建
  2. vim /etc/docker/daemon.json

新增以下信息

  1. {
  2. "data-root": "[your/data/path]"
  3. }
  1. # 重启docker
  2. systemctl daemon-reload
  3. systemctl start docker
  4. # 查看 docker 目录是否已被修改
  5. docker info | grep "Docker Root Dir"
  6. # 确认之前的镜像是否存在
  7. docker images
  8. # 确认docker 能正常运行后,删除原数据目录
  9. rm -rf /var/lib/docker

赠品

附赠两个常用命令

  1. # 删除所有未被标记tag的镜像,即名为 none的镜像
  2. docker image prune
  3. # 查看容器日志大小
  4. find /var/lib/docker/containers/ -name *-json.log |xargs du -sh