非常教程

Docker 17参考手册

引擎: CLI | Engine: CLI

docker system events

描述

从服务器获取实时事件

使用

docker system events [可选]

备选方案

名字,简写

默认

描述

--filter, -f

根据提供的条件过滤输出

--format

使用给定的Go模板格式化输出

--since

显示自时间戳以来创建的所有事件

--until

在此时间戳之前将事件流化

父命令

命令

描述

docker system

管理Docker

相关命令

命令

描述

docker system df

显示docker磁盘使用情况

docker system events

从服务器获取实时事件

docker system info

显示系统范围的信息

docker system prune

删除未使用的数据

扩展描述

使用docker system events从服务器获取实时事件。每个Docker对象类型都有不同的事件。

对象类型

容器

Docker容器报告下列事件:

  • 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图像报告了以下事件:

  • delete
  • import
  • load
  • pull
  • push
  • save
  • tag
  • untag

插件

Docker插件报告下列事件:

  • install
  • enable
  • disable
  • remove

Docker卷报告了下列事件:

  • create
  • mount
  • unmount
  • destroy

网络

Docker网络报告了下列事件:

  • create
  • connect
  • disconnect
  • destroy

守护进程

Docker守护进程报告下列事件:

  • reload

限制,筛选和格式化输出

按时间限制事件

--since--until参数可以是Unix的时间戳,日期格式时间戳,或持续时间的字符串(例如去10m1h30m)来计算相对于客户机的时间。如果您不提供该--since选项,则该命令仅返回新事件和/或现场事件。支持的格式为日期格式时间戳包括RFC3339Nano,RFC3339, ,2006-01-02T15:04:052006-01-02T15:04:05.9999999992006-01-02Z07:002006-01-02。如果您不提供a Z或a ,客户端将使用本地时区+-00:00时间戳结束时的时区偏移量。在提供Unix时间戳时,输入seconds [.nanoseconds],其中seconds是自1970年1月1日(午夜UTC / GMT)以来经过的秒数,不包括闰秒(又名Unix时代或Unix时间)和可选项。纳秒字段是一秒不到9位数字的一小部分。

过滤

过滤标志(-f--filter)格式为“key = value”。如果你想使用多个过滤器,传递多个标志(例如 --filter "foo=bar" --filter "bif=baz"

多次使用相同的过滤器将作为OR处理; 例如--filter container=588a23dac085 --filter container=a8f7720b8c22将显示容器588a23dac085 容器a8f7720b8c22的事件

使用多个过滤器将作为AND处理; 例如--filter container=588a23dac085 --filter event=start将显示事件容器容器588a23dac085 事件类型是开始

目前支持的过滤器是:

  • 容器(container=<name or id>
  • 守护进程(daemon=<name or id>)
  • 事件(event=<event action>)
  • 图像 (image=<tag or id>)
  • 标签 (label=<key> or label=<key>=<value>)
  • 网络 (network=<name or id>)
  • 插件 (plugin=<name or id>)
  • 类型 (type=<container or image or volume or network or daemon or plugin>)
  • 体积 (volume=<name or id>)

格式

如果格式 (--format) 指定,则将执行给定的模板,而不是默认格式。Go的文本/模板包描述格式的所有细节。

如果格式设置为{{json .}}事件作为有效的JSON行流。有关JSON行的信息,请参阅http://jsonlines.org/.

实例

基本实例

对于这个例子,您需要两个shell。

shell 1:侦听事件:

$ docker system events

外壳2:启动和停止容器:

$ docker create --name test alpine:latest top
$ docker start test
$ docker stop test

shell 1:(再次 .. 现在展示事件):

2017-01-05T00:35:58.859401177+08:00 container create 0fdb48addc82871eb34eb23a847cfd033dedd1a0a37bef2e6d9eb3870fc7ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1f5ceda09d4300f3a846f0acfaa9a8bb0d89e775eb744c5acecd60e0529e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)

退出docker system events命令,使用CTRL+C...

按时间过滤事件

您可以使用以下不同的时间语法,通过绝对时间戳或主机上的相对时间过滤输出:

$ docker system events --since 1483283804
2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)

$ docker system events --since '2017-01-05'
2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)

$ docker system events --since '2013-09-03T15:49:29'
2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)

$ docker system events --since '10m'
2017-01-05T00:35:41.241772953+08:00 volume create testVol (driver=local)
2017-01-05T00:35:58.859401177+08:00 container create d9cd...4d70 (image=alpine:latest, name=test)
2017-01-05T00:36:04.703631903+08:00 network connect e2e1...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:04.795031609+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:36:09.830268747+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:36:09.840186338+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:36:09.880113663+08:00 network disconnect e2e...29e2 (container=0fdb...ff37, name=bridge, type=bridge)
2017-01-05T00:36:09.890214053+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)

按标准过滤事件

下面的命令显示了几种筛选docker event输出。

$ docker system events --filter 'event=stop'

2017-01-05T00:40:22.880175420+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:41:17.888104182+08:00 container stop 2a8f...4e78 (image=alpine, name=kickass_brattain)

$ docker system events --filter 'image=alpine'

2017-01-05T00:41:55.784240236+08:00 container create d9cd...4d70 (image=alpine, name=happy_meitner)
2017-01-05T00:41:55.913156783+08:00 container start d9cd...4d70 (image=alpine, name=happy_meitner)
2017-01-05T00:42:01.106875249+08:00 container kill d9cd...4d70 (image=alpine, name=happy_meitner, signal=15)
2017-01-05T00:42:11.111934041+08:00 container kill d9cd...4d70 (image=alpine, name=happy_meitner, signal=9)
2017-01-05T00:42:11.119578204+08:00 container die d9cd...4d70 (exitCode=137, image=alpine, name=happy_meitner)
2017-01-05T00:42:11.173276611+08:00 container stop d9cd...4d70 (image=alpine, name=happy_meitner)

$ docker system events --filter 'container=test'

2017-01-05T00:43:00.139719934+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:43:09.259951086+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=15)
2017-01-05T00:43:09.270102715+08:00 container die 0fdb...ff37 (exitCode=143, image=alpine:latest, name=test)
2017-01-05T00:43:09.312556440+08:00 container stop 0fdb...ff37 (image=alpine:latest, name=test)

$ docker system events --filter 'container=test' --filter 'container=d9cdb1525ea8'

2017-01-05T00:44:11.517071981+08:00 container start 0fdb...ff37 (image=alpine:latest, name=test)
2017-01-05T00:44:17.685870901+08:00 container start d9cd...4d70 (image=alpine, name=happy_meitner)
2017-01-05T00:44:29.757658470+08:00 container kill 0fdb...ff37 (image=alpine:latest, name=test, signal=9)
2017-01-05T00:44:29.767718510+08:00 container die 0fdb...ff37 (exitCode=137, image=alpine:latest, name=test)
2017-01-05T00:44:29.815798344+08:00 container destroy 0fdb...ff37 (image=alpine:latest, name=test)

$ docker system events --filter 'container=test' --filter 'event=stop'

2017-01-05T00:46:13.664099505+08:00 container stop a9d1...e130 (image=alpine, name=test)

$ docker system events --filter 'type=volume'

2015-12-23T21:05:28.136212689Z volume create test-event-volume-local (driver=local)
2015-12-23T21:05:28.383462717Z volume mount test-event-volume-local (read/write=true, container=562f...5025, destination=/foo, driver=local, propagation=rprivate)
2015-12-23T21:05:28.650314265Z volume unmount test-event-volume-local (container=562f...5025, driver=local)
2015-12-23T21:05:28.716218405Z volume destroy test-event-volume-local (driver=local)

$ docker system events --filter 'type=network'

2015-12-23T21:38:24.705709133Z network create 8b11...2c5b (name=test-event-network-local, type=bridge)
2015-12-23T21:38:25.119625123Z network connect 8b11...2c5b (name=test-event-network-local, container=b4be...c54e, type=bridge)

$ docker system events --filter 'container=container_1' --filter 'container=container_2'

2014-09-03T15:49:29.999999999Z07:00 container die 4386fb97867d (image=ubuntu-1:14.04)
2014-05-10T17:42:14.999999999Z07:00 container stop 4386fb97867d (image=ubuntu-1:14.04)
2014-05-10T17:42:14.999999999Z07:00 container die 7805c1d35632 (imager=redis:2.8)
2014-09-03T15:49:29.999999999Z07:00 container stop 7805c1d35632 (image=redis:2.8)

$ docker system events --filter 'type=volume'

2015-12-23T21:05:28.136212689Z volume create test-event-volume-local (driver=local)
2015-12-23T21:05:28.383462717Z volume mount test-event-volume-local (read/write=true, container=562fe10671e9273da25eed36cdce26159085ac7ee6707105fd534866340a5025, destination=/foo, driver=local, propagation=rprivate)
2015-12-23T21:05:28.650314265Z volume unmount test-event-volume-local (container=562fe10671e9273da25eed36cdce26159085ac7ee6707105fd534866340a5025, driver=local)
2015-12-23T21:05:28.716218405Z volume destroy test-event-volume-local (driver=local)

$ docker system events --filter 'type=network'

2015-12-23T21:38:24.705709133Z network create 8b111217944ba0ba844a65b13efcd57dc494932ee2527577758f939315ba2c5b (name=test-event-network-local, type=bridge)
2015-12-23T21:38:25.119625123Z network connect 8b111217944ba0ba844a65b13efcd57dc494932ee2527577758f939315ba2c5b (name=test-event-network-local, container=b4be644031a3d90b400f88ab3d4bdf4dc23adb250e696b6328b85441abe2c54e, type=bridge)

$ docker system events --filter 'type=plugin'

2016-07-25T17:30:14.825557616Z plugin pull ec7b87f2ce84330fe076e666f17dfc049d2d7ae0b8190763de94e1f2d105993f (name=tiborvass/sample-volume-plugin:latest)
2016-07-25T17:30:14.888127370Z plugin enable ec7b87f2ce84330fe076e666f17dfc049d2d7ae0b8190763de94e1f2d105993f (name=tiborvass/sample-volume-plugin:latest)

格式化输出

$ docker system events --filter 'type=container' --format 'Type={{.Type}}  Status={{.Status}}  ID={{.ID}}'

Type=container  Status=create  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container  Status=attach  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container  Status=start  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container  Status=resize  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container  Status=die  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26
Type=container  Status=destroy  ID=2ee349dac409e97974ce8d01b70d250b85e0ba8189299c126a87812311951e26

格式为JSON

    $ docker system events --format '{{json .}}'

    {"status":"create","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4..
    {"status":"attach","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4..
    {"Type":"network","Action":"connect","Actor":{"ID":"1b50a5bf755f6021dfa78e..
    {"status":"start","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f42..
    {"status":"resize","id":"196016a57679bf42424484918746a9474cd905dd993c4d0f4..

引擎: CLI | Engine: CLI相关

1.守护进程CLI参考(dockerd)(引擎) | Daemon CLI reference (dockerd) (Engine)
2.docker
3.docker attach
4.docker build
5.docker checkpoint
6.docker checkpoint create
7.docker checkpoint ls
8.docker checkpoint rm
9.docker commit
10.docker config
11.docker config create
12.docker config inspect
13.docker config ls
14.docker config rm
15.docker container
16.docker container attach
17.docker container commit
18.docker container cp
19.docker container create
20.docker container diff
21.docker container exec
22.docker container export
23.docker container inspect
24.docker container kill
25.docker container logs
26.docker container ls
27.docker container pause
28.docker container port
29.docker container prune
30.docker container rename
31.docker container restart
32.docker container rm
33.docker container run
34.docker container start
35.docker container stats
36.docker container stop
37.docker container top
38.docker container unpause
39.docker container update
40.docker container wait
41.docker cp
42.docker create
43.docker deploy
44.docker diff
45.docker events
46.docker exec
47.docker export
48.docker history
49.docker image
50.docker image build
51.docker image history
52.docker image import
53.docker image inspect
54.docker image load
55.docker image ls
56.docker image prune
57.docker image pull
58.docker image push
59.docker image rm
60.docker image save
61.docker image tag
62.docker images
63.docker import
64.docker info
65.docker inspect
66.docker kill
67.docker load
68.docker login
69.docker logout
70.docker logs
71.docker network
72.docker network connect
73.docker network create
74.docker network disconnect
75.docker network inspect
76.docker network ls
77.docker network prune
78.docker network rm
79.docker node
80.docker node demote
81.docker node inspect
82.docker node ls
83.docker node promote
84.docker node ps
85.docker node rm
86.docker node update
87.docker pause
88.docker plugin
89.docker plugin create
90.docker plugin disable
91.docker plugin enable
92.docker plugin inspect
93.docker plugin install
94.docker plugin ls
95.docker plugin push
96.docker plugin rm
97.docker plugin set
98.docker plugin upgrade
99.docker port
100.docker ps
Docker 17

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

主页 https://docker.com/
源码 https://github.com/docker/docker
版本 17
发布版本 17.06