`
m635674608
  • 浏览: 5090654 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

docker 清理方案

 
阅读更多

我们在使用docker的过程中发现基于swarm使用Storage Driver: overlay的方式进行存储.但是发现这个特别占用存储空间.

清理所有停止的容器

docker container prune

清理所有不用数据(停止的容器,不使用的volume,不使用的networks,悬挂的镜像)

docker system prune -a

overlay存储

我们通过上面的操作清除了一些无用的数据,但是,overlay还是特别大.我们先了解下overlay存储.

overlayfs

集成进了linux 3.18内核.
overlay存储驱动主要使用的是overlayfs技术.中文名是叠合式文件系统.多个文件系统可以mount之后进行合并.
docker 镜像层 lowerdir
docker 容器层 upperdir
docker 容器挂载点 merged

这个三个层对应了 overlayFs的结构. 我们通过docker inspect 可以查看到如下结构

"GraphDriver": {
            "Name": "overlay",
            "Data": {
                "LowerDir": "/mnt/docker/overlay/5eb97eb91bed89a9c879142900419ad118215af05c291989282c130d031d7019/root",
                "MergedDir": "/mnt/docker/overlay/454f70c61de03ce2a517d7e2ea8c19e319a95cd2275d8b826f4244071315e513/merged",
                "UpperDir": "/mnt/docker/overlay/454f70c61de03ce2a517d7e2ea8c19e319a95cd2275d8b826f4244071315e513/upper",
                "WorkDir": "/mnt/docker/overlay/454f70c61de03ce2a517d7e2ea8c19e319a95cd2275d8b826f4244071315e513/work"
            }
        }

镜像在 /root
挂载点在 /merged
容器在 /upper
工作目录 /work

overlayfs数据清理

我们做了一个实验,我们启动一个容器(版本不同),之后

docker stop conatiner
docker rm container

通过对数据大小的监控,我们发现 overlay会随着新镜像的产生而产生一些数据,随着容器的关闭删除,这个文件并没有缩小体积.如何解决呢? 看来我们忽视了一个问题.我们使用 docker system prune以为可以不需要的数据都清理了,但是关于images中是这样描述的" dangling images" 悬挂的镜像 .关于这个词汇我还没有理解.不过通过测试,即使我把容器停止也无法清理镜像,所以,我无法理解 悬挂是怎样的状态.

docker rmi images

最后我们通过手动删除镜像,则之前产生的overlay数据就随之减少了.

tips:
查看overlay 大小 du --max-depth=1 -h
查看数量 ls|wc -w

整理

镜像有新版本产生的话,我们可以按照这样的流程操作

docker stop container
docker rm container
docker rmi image
docker pull image
docker run ...

这样就避免了系统磁盘一眨眼的时间就满了.

其他

docker 时间同步?

ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone

docker 存储地方修改

ExecStart=/usr/bin/dockerd --graph="/mnt/data/images"



http://www.jianshu.com/p/6ca10427ad77

https://segmentfault.com/a/1190000009175004

 

分享到:
评论

相关推荐

    docker清理大杀器/docker的overlay、overlay2文件占用磁盘太大的解决办法

    本文讲述了如何解决 Docker 中的 overlay 和 overlay2 文件占用磁盘太大的问题,并提供了相应的解决方案。同时,文章也附带了 Docker 配置 overlay 存储驱动的前提条件和步骤。 一、 Docker 中的 overlay 和 ...

    离线一键部署、卸载docker

    离线一键部署与卸载Docker是针对网络环境有限或者不稳定情况下的解决方案,它使得用户无需连接到互联网就能完成Docker的安装与移除过程。本文将详细介绍如何使用提供的资源来实现这一目标。 首先,我们需要了解...

    详解Docker源码编译安装

    解决方案:移除devicemapper文件夹,例如:`mv /var/lib/docker/devicemapper/ .` 3. **make build出错**:在执行`make build`时,可能会遇到因软件包依赖问题导致的错误。这通常需要根据错误提示手动安装缺少的...

    docker镜像nginx:latest离线加载包

    特别是在容器化技术领域,Docker作为其中的佼佼者,提供了轻量级的虚拟化解决方案,极大地简化了软件的打包、分发和部署过程。在Docker的生态系统中,Docker镜像扮演着至关重要的角色,它包含了运行特定应用程序所需...

    盘点汇总Docker磁盘环境的清理方法.docx

    盘点汇总Docker磁盘环境的清理方法.docx

    linux_安装docker_fix-docker.zip

    因此,为了帮助用户顺利安装并运行Docker,有必要针对可能出现的问题提供一系列解决方案和修复方法。 首先,确保Linux系统满足Docker安装的基本要求,这包括但不限于具备现代版Linux内核、有足够的磁盘空间、以及...

    docker 离线安装 for redhat 6.5

    3. **更新YUM缓存**:运行`yum clean all`来清理YUM的缓存,然后使用`yum makecache`创建新的缓存,这样YUM就可以找到新添加的Docker仓库。 4. **安装Docker**:现在你可以通过YUM安装Docker了。运行`yum install ...

    docker应用缺少字体文件

    解决docker部署应用使用缺少字体报错的问题,除了上述方案,还可以考虑使用通用字体替代策略,或在Docker镜像构建过程中预先配置好Java字体路径,确保Java应用能在容器中正常运行。此外,还可以根据Java应用的具体...

    Docker学习视频(讲师马永亮)10集之第6集:存储卷

    9. **卷插件**:Docker还支持卷插件,允许用户使用第三方存储解决方案(如NFS、Ceph、GlusterFS等)来扩展Docker的存储能力,满足更复杂的企业级存储需求。 10. **最佳实践**:在实际应用中,应尽量避免在容器的 `/...

    docker容器中crontab无法正常运行解决方案

    Crontab是一个在Unix系统中用于定时执行任务的工具,通常被用于运行定期任务如备份、清理日志等。Docker容器化技术允许我们将应用打包并运行在隔离的环境中,这使得它变得非常流行。然而,将Crontab运行在Docker容器...

    Docker在Ubuntu系统的安装、配置与常用命令解析

    对于 Docker 使用,列举出启动、状态管理、安装镜像、查看、清理等一系列常用的命令,还有有关容器的操作,例如启动方式(交互式或守护式)、日志查阅和维护管理等内容。 适合人群:有一定 Linux 和 Docker 基础,想...

    Docker容器日志查看与清理的方法(亲测有效)

    在Docker环境中,管理和清理日志对于保持系统稳定性和优化磁盘使用至关重要。本文将详细介绍如何查看和清理Docker容器日志,以及如何通过配置来限制日志的大小,从而达到“治本”的目的。 首先,当我们遇到Docker...

    docker.service启动失败:Unit not found的原因及解决办法

    如果问题确实是由于缺少docker.socket文件,还有另外两种解决方案: 1. 卸载Docker,然后重新安装。这个操作能够重新创建需要的docker.socket文件。 2. 创建一个新的/usr/lib/systemd/system/docker.socket文件,并...

    Docker数据卷管理(markdown文档教程).md

    如果需要清理不再使用的数据卷,可以使用“docker volume rm”命令进行删除操作。 数据卷管理在树莓派等设备上的应用也十分广泛,因为这些设备通常需要高效的存储管理解决方案来支持轻量级的容器化应用部署。Docker...

    Docker Django Redis Celery 的初始配置.zip

    在现代软件开发与部署的过程中,容器化技术已成为一种流行且高效的解决方案,其中Docker作为行业标准,得到了广泛的应用。Docker通过创建轻量级、可移植的容器来隔离应用程序及其依赖项,使得开发者可以构建、运行和...

    Docker日志太多导致磁盘占满的处理方法

    Docker容器在启动/重启的时候会往 /var/lib/docker 中写东西,如果你在启动docker容器遇到 No space left on device 的问题,可以按照下面的步骤进行清理相关的日志操作。 1、 对 /var/lib/docker/containers 下的...

    完美解决在docker容器中启动tomcat始终报端口被占用的错误

    总之,遇到Docker中Tomcat启动报端口被占用的错误时,首先要检查和清理占用端口的进程,然后通过端口映射或修改配置文件来避免未来的冲突。记住,良好的容器和端口管理是维持Docker环境稳定运行的关键。

    腾讯云:轻松搞定对容器实例日志设置定期清理和回卷

    【腾讯云容器服务日志管理】在Kubernetes中,虽然没有内置的日志收集解决方案,但可以通过`kubectl logs`命令查看容器实例的日志。这个命令基于容器运行时将标准输出和标准错误日志保存到主机的 `/var/lib/docker/...

    docker-fpm-wrapper:Docker FPM包装器

    【描述】 Docker FPM Wrapper 是一个专为在Docker容器中高效运行PHP-FPM应用设计的解决方案。它着重于日志记录、Prometheus监控以及在Kubernetes(K8s)环境中的优雅关闭功能,以确保服务的稳定性和性能。此项目特别...

Global site tag (gtag.js) - Google Analytics