/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录...

简介: /var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录...

0 du -hs /var/lib/docker/ 命令查看磁盘使用情况。

linlf@dacent:~$ sudo du -hs /var/lib/docker/

237G /var/lib/docker/

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

linlf@dacent:~$ 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

2 docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。

linlf@dacent:~$ docker system prune

WARNING! This will remove:

- all stopped containers

- all networks not used by at least one container

- all dangling images

- all build cache

Are you sure you want to continue? [y/N] y

Total reclaimed space: 0B

3 docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…所以使用之前一定要想清楚.。我没用过,因为会清理 没有开启的 Docker 镜像。

4 迁移 /var/lib/docker 目录。

4.1 停止docker服务。

systemctl stop docker

4.2 创建新的docker目录,执行命令df -h,找一个大的磁盘。 我在 /home目录下面建了 /home/docker/lib目录,执行的命令是:

mkdir -p /home/docker/lib

4.3 迁移/var/lib/docker目录下面的文件到 /home/docker/lib:

rsync -avz /var/lib/docker /home/docker/lib/

4.4 配置 /etc/systemd/system/docker.service.d/devicemapper.conf。查看 devicemapper.conf 是否存在。如果不存在,就新建。

sudo mkdir -p /etc/systemd/system/docker.service.d/

sudo vi /etc/systemd/system/docker.service.d/devicemapper.conf

4.5 然后在 devicemapper.conf 写入:(同步的时候把父文件夹一并同步过来,实际上的目录应在 /home/docker/lib/docker )

[Service]

ExecStart=

ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker

4.6 重新加载 docker

systemctl daemon-reload

systemctl restart docker

systemctl enable docker

4.7 为了确认一切顺利,运行

# 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/

...

4.8 启动成功后,再确认之前的镜像还在:

linlf@dacent:~$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

AAA/AAA v2 7331b8651bcc 27 hours ago 3.85GB

BBB/BBB v1 da4a80dd8424 28 hours ago 3.47GB

4.9 确定容器没问题后删除/var/lib/docker/目录中的文件。

https://blog.csdn.net/qq_37674858/article/details/79976751

https://blog.csdn.net/cmrsautomation/article/details/52857791

相关文章
|
2月前
|
存储 JSON 安全
Docker 的 overlay2 扩容教程
Docker 的 overlay2 扩容教程
124 3
|
2月前
|
Kubernetes Ubuntu 开发工具
迁移Docker目录
迁移Docker目录
68 0
|
2月前
|
Ubuntu Cloud Native Unix
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker 错误
在使用WSL(Ubuntu 18.04.6)时,初学者遇到运行Docker时的错误:“Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?”。解决问题的过程包括:首先尝试通过`sudo apt-get install daemon`安装daemon,然后使用`sudo service docker start`启动Docker。通过`sudo service docker status`确认Docker已启动,并成功运行`docker
|
2月前
|
存储 网络安全 API
|
2月前
|
Docker 容器
932.【docker】解决目录挂载无效
932.【docker】解决目录挂载无效
77 2
|
15天前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
|
2天前
|
安全 关系型数据库 开发者
Docker Compose凭借其简单易用的特性,已经成为开发者在构建和管理多容器应用时不可或缺的工具。
Docker Compose是容器编排利器,简化多容器应用管理。通过YAML文件定义服务、网络和卷,一键启动应用环境。核心概念包括服务(组件集合)、网络(灵活通信)、卷(数据持久化)。实战中,编写docker-compose.yml,如设置Nginx和Postgres服务,用`docker-compose up -d`启动。高级特性涉及依赖、环境变量、健康检查和数据持久化。最佳实践涵盖环境隔离、CI/CD、资源管理和安全措施。案例分析展示如何构建微服务应用栈,实现一键部署。Docker Compose助力开发者高效驾驭复杂容器场景。
10 1
|
2天前
|
存储 监控 安全
Docker Compose:轻松实现容器编排的利器
【7月更文挑战第2天】 1. **基础与概念**:服务(多容器实例)、网络(灵活通信)、卷(数据持久化)和配置(安全管理)。 2. **实战指南**:安装Compose,编写`docker-compose.yml`文件,启动应用,并介绍依赖、环境变量、健康检查和数据持久化。 3. **最佳实践**:环境隔离、CI/CD集成、资源管理、日志监控、安全策略及案例分析,展示完整应用栈搭建。
13 1
|
7天前
|
jenkins 持续交付 开发者
利用Docker容器化部署应用的实战指南
【6月更文挑战第27天】本文详述Docker应用部署,涵盖Docker基本概念、安装、镜像制作及运行。通过编写Dockerfile构建镜像,使用`docker build`、`run`、`push`及`stop`命令管理。集成CI/CD工具如Jenkins,实现自动化构建、测试和部署,提升开发效率与部署质量。Docker助力轻量级、可移植的微服务架构。