docker入门(5)--docker系统管理

当你需要进行一些错误排查时,下面介绍的命令将会非常有用。

1. 获取docker的系统信息

docker version命令可以看到客户端和服务端的相关API信息、版本信息等。

[root@node2 ~]# docker version 
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:23:03 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:25:29 2018
  OS/Arch:          linux/amd64
  Experimental:     false

docker是C/S架构的,client端我们可以简单的看做是一个可以与server端的API进行通信的工具即可,它通过我们前面了解的docker container这样的命令与server进行交互。
server端是实际运行各个container的,它可以是本地主机,也可以是远程主机或者云服务器等。
我们可以通过在client端指定相关的环境变量配置来管理不同的server端,例如:DOCKER_HOSTDOCKER_TLS_VERIFYDOCKER_CERT_PATH

下一个比较重要的命令是docker system info,这个命令可以告诉我们,当前的docker engine工作在什么模式下(例如swarm模式),使用何种存储驱动来管理统一文件系统,当前linux系统的核心版本等。

[root@node2 ~]# docker system info 
Containers: 2
 Running: 2
 Paused: 0
 Stopped: 0
Images: 8
Server Version: 18.06.1-ce
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true
 Native Overlay Diff: 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: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-862.14.4.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 23.37GiB
Name: node2.xxx.com
ID: UA2Y:7YJ6:ZHON:5UXE:J554:FKXM:PVHL:UHIF:SNTY:LXEU:QY7E:RVMK
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Registry Mirrors:
 https://docker.mirrors.ustc.edu.cn/
Live Restore Enabled: false

2. 列出当前资源使用情况

伴随着长时间的使用,我们可能积攒了很多docker相关资源,包括:镜像、容器、数据卷。熟悉对他们进行管理,能够及时的释放我们的内存、硬盘等资源。
与磁盘空间使用情况相关的命令docker system df

[root@node2 ~]# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              7                   2                   585MB               206.3MB (35%)
Containers          2                   2                   2B                  0B (0%)
Local Volumes       3                   2                   316.7MB             0B (0%)
Build Cache         0                   0                   0B                  0B

如果你需要更详细的信息,可以加上参数-v:docker system df -v

[root@node2 ~]# docker system df -v
Images space usage:

REPOSITORY          TAG                 IMAGE ID            CREATED ago         SIZE                SHARED SIZE         UNIQUE SiZE         CONTAINERS
pinger              latest              c3c2f4b53219        3 days ago ago      4.413MB             4.413MB             0B                  0
my-alpine           latest              878a60dd0a6d        3 days ago ago      5.967MB             4.413MB             1.554MB             0
centos              7                   75835a67d134        2 weeks ago ago     200.4MB             0B                  200.4MB             0
nginx               alpine              aae476eee77d        3 weeks ago ago     17.74MB             4.413MB             13.33MB             1
alpine              latest              196d12cf6ab1        6 weeks ago ago     4.413MB             4.413MB             0B                  0
hello-world         latest              4ab4c602aa5e        7 weeks ago ago     1.84kB              0B                  1.84kB              0
mongo               3.7                 3db1239d511b        4 months ago ago    365.3MB             0B                  365.3MB             1

Containers space usage:

CONTAINER ID        IMAGE               COMMAND                  LOCAL VOLUMES       SIZE                CREATED ago         STATUS              NAMES
e65ac72b9c3f        mongo:3.7           "docker-entrypoint.s…"   2                   0B                  16 hours ago ago    Up 16 hours         my-mongo
50a5ed614ea1        nginx:alpine        "nginx -g 'daemon of…"   0                   2B                  17 hours ago ago    Up 17 hours         competent_lamport

Local Volumes space usage:

VOLUME NAME                                                        LINKS               SIZE
shared-data                                                        0                   0B
065a116f6ef50622aa3e1f674f81cc61d13e4618b6f726b5fd77f4813fcc5e84   1                   0B
10242f5b75f1ba88e1e2abdbb2cc874887f4181353ea62ca6f2c6735c32b0e7b   1                   316.7MB

Build cache usage: 0B

3. 修剪无用的资源

3.1 修剪容器

docker container prune移除所有不在运行状态的容器:

[root@node2 ~]# docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                  NAMES
3b51d7d65aed        centos:7            "/bin/bash"              5 seconds ago       Exited (0) 4 seconds ago                          dazzling_perlman
e65ac72b9c3f        mongo:3.7           "docker-entrypoint.s…"   17 hours ago        Up 17 hours                27017/tcp              my-mongo
50a5ed614ea1        nginx:alpine        "nginx -g 'daemon of…"   17 hours ago        Up 17 hours                0.0.0.0:8080->80/tcp   competent_lamport
[root@node2 ~]# docker container prune 
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
3b51d7d65aed1dc2b174406d303fb9c75d01bce98f3224e92349ff39021993af

Total reclaimed space: 0B

某些时候,我们可能需要移除所有的容器(包括运行中的),可以使用如下命令:
docker container rm -f $(docker container ls -aq)

3.2 修剪镜像

在自行构建镜像的过程中,可能会产生很多<none>:<none>这样的镜像,可用如下命令清除:
docker image prune
上面的命令会有一个提醒你确认删除的交互过程,可以使用-f参数,强制清除:
docker image prune -f
还可以清除所有未被使用到的镜像:
docker image prune --force --all

3.3 修剪数据卷

数据卷是用来进行数据持久化的,因此进行相关操作时,要注意确保你的数据确实是无用的,才可以进行prune:
docker volume prune
以上命令,用于删除所有未被任何容器挂载使用到的数据卷。
也可以通过标签来定向删除某一个数据卷:
docker volume prune --filter 'label=demo'
通过标签删除多个数据卷:
docker volume prune --filter 'label=demo' --filter 'label=test'

3.5 修剪网络

网络部分我们还未开始了解学习,简单先了解一下命令即可:
docker network prune
以上命令将删除所有未被任何容器或者服务连接的网络。

3.6 删除一切

以上所有的删除动作,可以使用一个命令来一起触发:
docker system prune
一般不推荐使用。

4. 获取docker系统事件

docker system events
该命令类似linux中的tail -f命令,是阻断式的,且实时刷新。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,635评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,543评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,083评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,640评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,640评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,262评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,833评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,736评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,280评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,369评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,503评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,870评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,340评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,460评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,909评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,512评论 2 359

推荐阅读更多精彩内容