inspect 命令用于以JSON格式显示容器与镜像的详细信息

Docker技术问答:http://linux.xyz/topic/Docker

$ docker inspect <选项><容器或镜像名称,id>

-f、--format="" 只显示指定信息。如:"{" 使用 . 来设置JSON文档的下层项目

下面命令显示容器的IP地址

$ docker run -it -d --name hello ubuntu /bin/bash
$ docker inspect -f "{{.NetworkSettings.IPAddress}}" hello

下面命令只从容器的详细信息中抽取特定部分,并按照所希望的格式显示

$ docker run -it -d --name hello -p 8000:80 -p 8080:8080 ubuntu /bin/bash
$ docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' hello

此处使用 {{range $p, $conf := .NetworkSettings.Ports}} 循环访问 .NetworkSettings.Ports 的值,并代入 $p $conf。然后输出$p,并将$conf数组的第一项 (index $conf 0) 的 .HostPort 输出。 另:.NetworkSettings.Ports 是一个map类型数据结构:

map[80/tcp:[{0.0.0.0 8000}] 8080/tcp:[{0.0.0.0 8080}]]