描述

在生产环境中,会经常遇到docker容器占用空间过大,系统盘磁盘空间不足的情况,随着使用量越来越大,这种时候仅仅是扩容系统盘已经无法完全解决这个问题,此时就需要挂载一个数据盘,本文挂载到目录/mnt下,然后将docker工作目录迁移到/mnt


使用方法

  1. 先查看docker工作目录

    1
    docker info |grep "Docker Root Dir"

    显示

    1
    Docker Root Dir: /var/lib/docker
  2. 关闭docker服务

    1
    systemctl stop docker.service
  3. 移动目录到挂载的数据盘/mnt

    1
    mv /var/lib/docker /mnt/docker
  4. 修改docker启动配置

    1
    vi /usr/lib/systemd/system/docker.service

    有些系统是在这个目录下

    1
    vi /lib/systemd/system/docker.service

    ExecStart=/usr/bin/dockerd这行后追加--graph=/mnt/docker

    1
    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/mnt/docker 
  5. 重新加载,重启docker

    1
    2
    systemctl daemon-reload
    systemctl start docker.service

Docker的一些其它命令

类似于Linux上的df命令,用于查看Docker的磁盘使用情况

1
docker system df

列出所有dangling(虚悬)镜像,也就是 TAG 为 <none> 的

1
docker images -f dangling=true

用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling(虚悬)镜像

1
docker system prune

清理得更加彻底,可以将没有容器使用Docker镜像都删掉(请慎重操作)

1
docker system prune -a