du -hs /var/lib/docker/ 命令查看磁盘使用情况。
du -hs /var/lib/docker/
docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:
root@nn0:~$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 7 2 122.2GB 79.07GB (64%)
Containers 2 2 61.96GB 0B (0%)
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
迁移 /var/lib/docker 目录
-
停止docker服务。
systemctl stop docker
systemctl stop docker.socket
-
创建新的docker目录,执行命令df -h,找一个大的磁盘。 我在 /home目录下面建了 /home/docker/lib目录,执行的命令是:
mkdir -p /home/docker/lib
-
迁移/var/lib/docker目录下面的文件到 /home/docker/lib:
rsync -avz /var/lib/docker /home/docker/lib/
-
修改
vim /usr/lib/systemd/system/docker.service
搜索ExecStart
在
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
添加--data-root=/home/docker/lib/docker
-
修改
/etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerhub.icu",
"https://docker.anyhub.us.kg",
"https://docker.1panel.live"
],
"log-driver":"json-file",
"log-opts":{
"max-size" :"50m","max-file":"3"
},
"graph":"/home/docker/lib/docker" # docker 低版本使用 graph
"root-data":"/home/docker/lib/docker" # docker 高版本使用 root-data
} -
重新加载 docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
如果启动失败 输入 systemctl status docker.service
查看错误日志
-
为了确认一切顺利,运行
docker info
命令检查Docker 的根目录.它将被更改为 /home/docker/lib/docker
...
Docker Root Dir: /home/docker/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
...
- 确定容器没问题后删除/var/lib/docker/目录中的文件。