Docker 清理环境操作

开始清理,需要慎重!

列出无用的卷

docker volume ls -qf dangling=true

清理无用的卷

docker volume rm $(docker volume ls -qf dangling=true)

清理无用的镜像

docker rmi $(docker images | grep '^<none>' | awk '{print $3}')

继续清理

docker system prune

docker volume prune

以上足够使用,其他命令不要知道了!

补充知识:Docker 一文教你清理docker空间释放磁盘空间

如何清理docker目录

docker 目录已经占满系统盘,又不好迁移,问下有没有快捷的解决方案,答案是有的。以下是我整理的经典案列,适合生产以及测试使用。编写清理docker 日志脚本如下:

[root@www ~]# cat clean_docker_log_space.log
#!/bin/bash
docker_log_files=$(find /var/lib/docker/containers/ -name '*-json.log')
docker_logs_size=$(find /var/lib/docker/containers/ -name '*-json.log' | xargs du -sc | tail -1 |awk '{print $1,"K"}')
free -h && sync && echo 1 > /proc/sys/vm/drop_caches  #释放系统缓存

echo -e "\033[32mThe docker log total size is $docker_logs_size\033[0m"

for log in $docker_log_files
  do
   echo "Now is cleaning docker log,docker core logs:$log"
    cat /dev/null > $log
    systemctl reload docker #加载docker服务,不影响已经docker
  done 

free -h

运行结果如下:

[root@www ~]# ./clean_docker_log_space.log
       total    used    free   shared buff/cache  available
Mem:      976M    598M    112M    6.8M    264M    157M
Swap:     511M     66M    445M
The docker log total size is 80 K
Now is cleaning docker log,docker core logs:/var/lib/docker/containers/7538f077348e3c9722fb90ed4b0a5c3d60d72112e989526767c63d55f5a76f3e/7538f077348e3c9722fb90ed4b0a5c3d60d72112e989526767c63d55f5a76f3e-json.log
Now is cleaning docker log,docker core logs:/var/lib/docker/containers/235d20190027e757a203f1b4d4093335fb92ba515f7a501448c36c1332c622a2/235d20190027e757a203f1b4d4093335fb92ba515f7a501448c36c1332c622a2-json.log
Now is cleaning docker log,docker core logs:/var/lib/docker/containers/685a7af447ce884de1e9bbeb5d4ca0ca99860096f71c33b4f9a4d15a427c5e00/685a7af447ce884de1e9bbeb5d4ca0ca99860096f71c33b4f9a4d15a427c5e00-json.log
       total    used    free   shared buff/cache  available
Mem:      976M    599M    176M    6.8M    200M    168M
Swap:     511M     66M    445M

[root@www ~]# find /var/lib/docker/containers/ -name '*-json.log' | xargs du -sc | tail -1 |awk '{print $1,"K"}'
0 K

建议把脚本加Linux 定时任务里面每周清理一次,这个就可以保证docker 不产生而外的日志文件。

生产环境如下所示

df -TH docker 使用系统磁盘的93%

执行脚本 clean_docker_log_space.log ,执行清理脚本之后df -TH,docker 使用系统磁盘的43%

docker部署建议

最后建议大家在部署docker 的应用建议在docker自定义配置目录

#首先,挂载容量的磁盘,挂载目录选择/data
[root@www ~]# mkdir -p /data
#停止docker
[root@www ~]# systemctl stop docker

#将数据移到新目录
[root@www ~]# mv /var/lib/docker /data
#修改配置,增加 --graph /data
[root@www ~]# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph /data 

[root@www ~]# systemctl daemon-reload
[root@www ~]# systemctl start docker
[root@www ~]# systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
 

以上这篇Docker 清理环境操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决Docker启动Elasticsearch7.x报错的问题

    使用Docker run 命令 docker run -d -p 9200:9200 -p 9300:9300 --name 用户自定义名字 容器ID 会看到一串字符串,一般情况下我们会误以为它启动成功 我们执行docker ps -a是发现它自动退出了 使用docker logs -f 容器ID 查看日志发现: ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] li

  • docker run之后状态总是Exited

    add -it docker run -it -name test -d nginx:latest /bin/bash -d: 后台运行容器,并返回容器ID: -i: 以交互模式运行容器,通常与 -t 同时使用: -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用: 补充知识:docker-compose 通过sh命令启动nginx 容器自动退出exited with code 0 docker-compose使用的模板文件中有通过entrypoint或者command参数设置容器启动

  • 在Docker中安装Elasticsearch7.6.2的教程

    安装docker 你要安装完成docker,不再说明了. 安装Elasticsearch 注意:使用版本为 7.6.2,你可以选择其他版本 拉取镜像 docker pull elasticsearch:7.6.2 启动容器 docker run --restart=always -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms512m -Xmx512m"

  • docker 报错 Exited (1) 4 minutes ago的原因分析

    docker 报错 1. 查看原因 docker logs nexus 2. 报错原因 OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000e7000000, 419430400, 0) failed; error='Cannot allocate memory' (errno=12) # # There is insufficient memory for the Java Runtime Environmen

  • docker容器状态的转换实现

    一 docker容器状态转换图 二 实战 [root@localhost ~]# docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 3 Server Version: 17.09.0-ce Storage Driver: overlay Backing Filesystem: xfs Supports d_type: false Logging Driver: json-file Cgroup Driver: cg

  • docker run 运行容器自动结束的解决

    今天遇到了用Dockerfile创建镜像,镜像运行后容器自动结束问题. 启动命令: docker run -d -p 8080:8080 -v /usr/local/tomcat7.0/logs:/usr/local/tomcat7.0/logs --name tomcatweb tomcat:7.0 运行以后用docker ps 发现docker 容器已经结束了 查找资料后发现 这个问题并不复杂 原因是应为:Docker容器后台运行,就必须有一个前台进程. 解决办法: 1.将运行进程发放入前台

  • Docker 清理环境操作

    开始清理,需要慎重! 列出无用的卷 docker volume ls -qf dangling=true 清理无用的卷 docker volume rm $(docker volume ls -qf dangling=true) 清理无用的镜像 docker rmi $(docker images | grep '^<none>' | awk '{print $3}') 继续清理 docker system prune docker volume prune 以上足够使用,其他命令不要知道了!

  • 树莓派3B+安装64位ubuntu系统和docker工具的操作步骤详解

    想在树莓派3B上安装一些64位应用(例如64位JDK),因此首先要安装64位的操作系统,今天咱们就一起来实战: 原文地址:https://blog.csdn.net/boling_cavalry/article/details/80716098 环境要求一台树莓派3B设备:网络环境是内网,需要有线网络和网线一根:当树莓派通过网线连接到内网后,能够在路由器管理软件上查到树莓派的IP,例如我用的是小米路由器,通过路由器管理页面或者小米路由器的APP就能看到树莓派的接入情况:读卡器:电脑一台,系统是w

  • docker清理大杀器/docker的overlay文件占用磁盘太大的解决

    [看网上都是什么迁移文件的就感觉不靠谱,治标不治本啊(这不应该是一个新生代coder的样子)] du -sh* 一路查下去,发现overlay这个文件夹已经爆了. docker system prune -a 才清理了7g的空间,那个文件夹还是30g 磁盘占用路从100%下降到80%左右,这哪里行啊,再跑两天还是满! 最后大杀器来了 安装portainer docker安装教程一堆 我这里使用dokcer-compose部署的所以下面是配置 portainer: image: portainer

  • Docker 清理的常用方法及问题

    如果你使用 docker 进行大规模开发,但是没有清理策略,那么你的磁盘马上就会被填满,当你真的必须因为产品火爆而要立即交付一些东西时,你就无法交付. 当我们在计算机中运行一个进程时,一旦这个进程完成,所有东西都会随之销毁.容器是我们现在很多人操作的基础设施.一切东西都运行在一个容器上,旨在每个容器有一个进程.当进程完成,容器就退出.但它不会自行清理. Docker 积累的东西 你需要注意这些 已经停止的容器 磁盘卷 镜像 网络 如果有足够的空间,你可能不太关心磁盘空间,但是网络也很重要.默认地

  • 关于docker清理Overlay2占用磁盘空间的问题(亲测有效)

    使用Docker过程中,长时间运行服务容器,导致不能进行上传文件等操作,通过命令df -h 发现overlay占用较高.通过命令docker system prune -a 清理无用镜像.缓存.挂载数据,也没有什么改变. 如果你也被这个问题所困扰,咱们就一起看一下 Docker 是如何使用磁盘空间的,以及如何回收. docker 占用的空间可以通过下面的命令查看: $ docker system df prune指令默认会清除所有如下资源: 已停止的容器(container) 未被任何容器所使用

  • docker多容器操作与强制删除容器的方法步骤

    目录 简介: 1.创建多个容器 2.停止多个容器 3.删除多个容器 4.强制删除容器 总结 简介: 这是一篇有关[doker的多容器操作和强制删除容器的方法]的文章,用最精简的语言去表达给前端读者们. 1.创建多个容器 在WIndows环境下我们来作这个,先打开三个PowerShell窗口,然后在每个窗口中输入创建容器的命令,这里以Nginx镜像为例 docker container run nginx 然后再重新打开一个PowerShell窗口,输入查看命令,查看已经开启的容器. docker

  • 详解MAC OSX Docker开发环境搭建

    MAC OSX  Docker 开发环境搭建 1. 安装Virtualbox 下载地址:https://www.virtualbox.org/ VirtualBox简体中文版下载安装(图解教程)http://www.jb51.net/article/95311.htm 2. 安装boot2docker $ brew install boot2docker # 也可以手工安装: $ curl https://raw.github.com/steeve/boot2docker/master/boot

  • Django网络框架之创建虚拟开发环境操作示例

    本文实例讲述了Django网络框架之创建虚拟开发环境操作.分享给大家供大家参考,具体如下: @什么是虚拟开发环境 很多时候一台服务器上要运行多个Web应用程序: 而这些应用程序之间使用的第三方框架往往是互不相同且互不兼容的: 虚拟环境的作用就是为每个Web应用创建一个隔离的独立的运行环境,使得各个应用的依赖互不影响: @通过venv安装虚拟环境(Python3.4以上版本) sudo apt-get install python3-venv # cd到合适目录后,创建一个虚拟环境目录 pytho

  • centos6使用docker部署zookeeper操作示例

    本文实例讲述了centos6使用docker部署zookeeper操作.分享给大家供大家参考,具体如下: 目录结构: /zookeeper     /Dockerfile     /start.sh     /Readme     /zookeeper-3.4.10.tar.gz Dockerfile FROM centos MAINTAINER qiongtao.li hnatao@126.com ADD ./zookeeper-3.4.10.tar.gz /opt ADD ./start.s

  • Pycharm中配置远程Docker运行环境的教程图解

    捣鼓了一天一直报错:Error running 'mypython': Can't run remote python interpreter: the working directory 'C:\Users\admin\Desktop\dc' is invalid, it needs to be an absolute path 首先咱们得搞清楚,pycharm连接docker的原理 Step 1: 打开pycharm连接docker ,记得打开远程2375端口 Step 2:连接远程dock

随机推荐