简介
使用docker一时爽,一直使用一直爽,直到我把所有用到的服务全部容器化后,一天天过去了,发现docker占用了不少机器资源,而且单机上镜像、容器数量过多后,导致docker的性能也出现了问题,时不时会发现一些服务假死、或者docker命令卡死的现象,而且能明显感受到服务器的磁盘空间一点点被消耗殆净,本文将教会大家如何为你的docker服务器瘦身!
本文内容有
查看docker服务详细信息和当前资源使用情况
查看过时或无效的images和container
查看docker服务状态和资源使用情况
查看无效的网络和磁盘挂载记录
手动清理磁盘、网络、镜像、容器服务
一键清理无用资源信息
更多docker资料
参考文章
原文传送门
Docker官方命令手册
1、查看docker服务详细信息和当前资源使用情况
1.1 docker system info 命令
用于查看docker环境的自身和所有容器资源的概览情况,主要有:
Containers 容器信息
1
2
3
4
Images 镜像信息
1
Server Version docker服务版本号
1
Storage Driver 磁盘存储器类型
1
2
3
4
Logging Driver 日志输出驱动类型
1
Cgroup Driver linux虚拟环境驱动器类型
1
Plugins 插件类型
1
2
3
4
Swarm 集群状态
1
2
3
4
5
Security Options 安全策略
1
2
3
Kernel Version 内核版本
1
Operating System 操作系统类型和版本信息
1
OSType 操作系统类型
1
Architecture CPU架构类型
1
CPU和内存信息
1
2
3
docker本地环境信息
1
2
3
4
5
6
Registry 远程镜像仓库地址
1
Registry Mirrors 代理镜像仓库地址
1
2
配置非https环境的镜像仓库地址
1
2
3
其他信息
1
2
3
4
5
6
1.2 docker system df 命令
用于查看docker各种资源的磁盘空间和使用情况
Images 镜像空间使用情况
Containers 容器空间使用情况
Local Volumes 磁盘挂载情况
Build Cache 构建缓存占用空间情况
1
2
3
4
5
1.3 docker system events 命令
该命令用于监听docker的事件行为信息,并打印到控制台。
常用的事件如:容器创建、启动、重启等等事件
容器
Docker containers 容器的相关操作会产生如下事件:
attach
commit
copy
create
destroy
detach
die
exec_create
exec_detach
exec_start
export
health_status
kill
oom
pause
rename
resize
restart
start
stop
top
unpause
update镜像
Docker images 镜像的相关操作会产生如下事件:
delete
import
load
pull
push
save
tag
untag插件
Docker plugins 插件的相关操作会产生如下事件:
install
enable
disable
remove磁盘挂载
Docker volumes 磁盘挂载的相关操作会产生如下事件:
create
mount
unmount
destroy网络
Docker networks 网络管理的相关操作会产生如下事件:
create
connect
disconnect
destroyDAEMONS
Docker daemons 的相关操作会产生如下事件::
reload
2、查看过时或未用到的image和container
2.1 查找镜像
查找未使用的镜像
docker images -f "dangling=true"使用关键字查找镜像
docker images | grep nginx
2.2 查找容器
查找所有停止的容器
docker ps -a|grep Exited
或docker ps -f status=exited按关键字查找容器(默认为正在运行的)
docker ps |grep nginx或者
docker ps -f "name=nginx"按关键字查找容器(所有的)
docker ps -a |grep nginx
3、查看docker服务运行状态和资源使用情况
实时查看容器日志观察服务运行状态
1
2
查看容器端口绑定和端口监听情况
1
2
3
4
1
2
3
4
查看所有或者指定容器运行状态
1
2
3
4
5
6
7
8
查看所有或者指定容器资源使用情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
查看容器内服务资源使用情况
1
2
3
4
5
6
7
8
4、 查看无效的网络和磁盘挂载记录
4.1 查看网络和管理容器的网络连接信息
查看所有网络信息
具体的自定义网络创建和使用可以参考Docker swarm容器集群使用总结
1
2
1
2
3
4
5
6
7
8
docker容器连接到网络
1
2
3
4
5
docker容器断开网络连接
1
2
3
4.2 查看磁盘挂载信息
查看磁盘挂载信息
1
2
3
4
5
6
7
创建或删除磁盘挂载信息
1
2
3
4
5
6
查看容器磁盘挂载情况
或者
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
1
2
3
5、手动清理磁盘、网络、镜像、容器服务
5.1 查找并删除镜像
删除悬空的镜像
1
2
3
4
删除满足关键字的镜像
1
5.2 查找并删除容器
删除所有停止的容器
1
2
3
删除关键字匹配的容器
1
2
3
4
5
6
7
8
5.3 查找并删除磁盘挂载
删除磁盘挂载
1
2
5.4 查找并删除网络连接信息
查找并删除网络连接
1
2
6、一键清理无用资源信息
清理无用的镜像,状态为dangling(悬空的,也就是没有人使用,而且没有TAG,一般在多次构建镜像后,之前的镜像会成为这种状态)的镜像
docker image prune清理所有未使用的镜像
docker image prune -a
清理无用的容器
docker container prune
清理不用的数据卷
docker volume prune
清理无用的网络链接
docker network prune
一键清理停掉的container、悬挂的image(没有tag)、没有使用的network、数据卷
docker system prune
7、更多docker资料
springboot应用制作docker镜像教程
docker基础镜像centos7-jdk8-logstash构建
Docker swarm容器集群使用总结
docker服务假死解决方案
最新最全最详细docker实战入门教程




