docker system命令集合的使用
docker system 目前拥有四个子命令,分别是:
docker system df
docker system events
docker system info
docker system prune
docker system 其中最重要的一个命令就是 docker system prune 命令,清理没有使用的数据,包括镜像数据,已经停止的容器
查看 docker system 帮助
[root@localhost ~]# docker system --help Usage: docker system COMMAND Manage Docker Options: --help Print usage Commands: df Show docker disk usage events Get real time events from the server info Display system-wide information prune Remove unused data Run 'docker system COMMAND --help' for more information on a command. [root@localhost ~]#
docker system df
提供Docker整体磁盘使用率的概况,包括镜像、容器和(本地)volume。所以我们现在随时都可以查看Docker使用了多少资源。
[root@localhost ~]# docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 10 6 2.652GB 1.953GB (73%) Containers 6 6 6.922MB 0B (0%) Local Volumes 0 0 0B 0B [root@localhost ~]#
docker system prune
如果之前的命令展示出 docker 已经占用了太多空间,我们会开始清理。有一个包办一切的命令:
[root@localhost ~]# 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 [root@localhost ~]#
根据警告信息可知,这个命令会删除所有关闭的容器以及dangling镜像。示例中,含有3个1GB随机文件的镜像的名称被占用了,名称为:,为dangling镜像,因此会被删除。同时,所有的中间镜像也会被删除。
更进一步,使用-a选项可以做深度清理。这时我们会看到更加严重的WARNING信息:
$ docker system prune -a WARNING! This will remove: - all stopped containers - all volumes not used by at least one container - all networks not used by at least one container - all images without at least one container associated to them Are you sure you want to continue? [y/N] y Deleted Images: untagged: test:latest deleted: sha256:c515ebfa2... deleted: sha256:07302c011... deleted: sha256:37c0c6474... deleted: sha256:5cc2b6bc4... deleted: sha256:b283b9c35... deleted: sha256:8a8b9bd8b... untagged: alpine:latest untagged: alpine@sha256:58e1a1bb75db1... deleted: sha256:4a415e366... deleted: sha256:23b9c7b43... Total reclaimed space: 2.151GB
这个命令将清理整个系统,并且只会保留真正在使用的镜像,容器,数据卷以及网络,因此需要格外谨慎。比如,我们不能在生产环境中运行prune -a命令,因为一些备用镜像(用于备份,回滚等)有时候需要用到,如果这些镜像被删除了,则运行容器时需要重新下载。
此时,所有未绑定容器的镜像将会被删除。由于第一次prune命令删除了所有容器,因此所有镜像(它们没有绑定任何容器)都会被删除。
docker systemc info (docker info)
这个命令的缩写docker info相信大家都很熟悉
[root@localhost ~]# docker system info Containers: 6 Running: 6 Paused: 0 Stopped: 0 Images: 49 Server Version: 17.06.2-ce Storage Driver: overlay Backing Filesystem: xfs Supports d_type: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 6e23458c129b551d5c9871e5174f6b1b7f6d1170 runc version: 810190ceaa507aa2727d7ae6f4790c76ec150bd2 init version: 949e6fa Security Options: seccomp Profile: default Kernel Version: 3.10.0-514.26.2.el7.x86_64 Operating System: CentOS Linux 7 (Core) OSType: linux Architecture: x86_64 CPUs: 24 Total Memory: 31.21GiB Name: localhost.localdomain ID: YTL2:6RWX:IZK6:X4XC:XKMO:WVXD:LXPR:E5GN:GEJB:WIUX:L5YH:PDFB Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Experimental: false Insecure Registries: 127.0.0.0/8 Registry Mirrors: http://9zkjjecg.mirror.aliyuncs.com/ https://docker.mirrors.ustc.edu.cn/ Live Restore Enabled: false [root@localhost ~]#
详细的解释
元字符 | 描述 |
---|---|
info 等同于 docker info |
查看整个docker系统的信息 例如 docker system info 例如 docker system info | grep Images |
events 等同于 docker events |
获取docker系统实时事件,不包括容器内的。 例如:docker system events ?Cuntil 1499305500 // 截止到 2017.7.6 01:45:00的操作 例如:docker system events ?Csince 1499305500 // 从 2017.7.6 01:45:00之后的操作 |
df | 整体磁盘的使用情况 例如:docker system df 例如:docker system df -v |
prune | 清理资源,此操作尤其需要注意。 例如:docker system prune #包括清理以下的四种,即容器、镜像、数据卷、网络 ?C all stopped containers ?C all volumes not used by at least one container ?C all networks not used by at least one container ?C all dangling images 例如:docker system prune -a #包括以下的四种情况,主要和上比较 ?C all stopped containers ?C all volumes not used by at least one container ?C all networks not used by at least one container ?C all images without at least one container associated to them |