docker-inspect: Extend docker inspect to export image/container metadata related to graph driver
Export image/container metadata stored in graph driver. Right now 3 fields DeviceId, DeviceSize and DeviceName are being exported from devicemapper. Other graph drivers can export fields as they see fit. This data can be used to mount the thin device outside of docker and tools can look into image/container and do some kind of inspection. Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
This commit is contained in:
parent
7507a5b7ab
commit
147a754d4a
@ -30,143 +30,144 @@ each result.
|
|||||||
|
|
||||||
To get information on a container use its ID or instance name:
|
To get information on a container use its ID or instance name:
|
||||||
|
|
||||||
$ docker inspect 1eb5fabf5a03
|
$ docker inspect d2cc496561d6
|
||||||
[{
|
[{
|
||||||
"AppArmorProfile": "",
|
"Id": "d2cc496561d6d520cbc0236b4ba88c362c446a7619992123f11c809cded25b47",
|
||||||
|
"Created": "2015-06-08T16:18:02.505155285Z",
|
||||||
|
"Path": "bash",
|
||||||
"Args": [],
|
"Args": [],
|
||||||
"Config": {
|
"State": {
|
||||||
"AttachStderr": false,
|
"Running": false,
|
||||||
"AttachStdin": false,
|
"Paused": false,
|
||||||
"AttachStdout": false,
|
"Restarting": false,
|
||||||
"Cmd": [
|
"OOMKilled": false,
|
||||||
"/usr/sbin/nginx"
|
"Dead": false,
|
||||||
],
|
"Pid": 0,
|
||||||
"Domainname": "",
|
"ExitCode": 0,
|
||||||
"Entrypoint": null,
|
"Error": "",
|
||||||
"Env": [
|
"StartedAt": "2015-06-08T16:18:03.643865954Z",
|
||||||
"HOME=/",
|
"FinishedAt": "2015-06-08T16:57:06.448552862Z"
|
||||||
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
|
||||||
],
|
|
||||||
"ExposedPorts": {
|
|
||||||
"80/tcp": {}
|
|
||||||
},
|
},
|
||||||
"Hostname": "1eb5fabf5a03",
|
"Image": "ded7cd95e059788f2586a51c275a4f151653779d6a7f4dad77c2bd34601d94e4",
|
||||||
"Image": "summit/nginx",
|
|
||||||
"Labels": {
|
|
||||||
"com.example.vendor": "Acme",
|
|
||||||
"com.example.license": "GPL",
|
|
||||||
"com.example.version": "1.0"
|
|
||||||
},
|
|
||||||
"MacAddress": "",
|
|
||||||
"NetworkDisabled": false,
|
|
||||||
"OnBuild": null,
|
|
||||||
"OpenStdin": false,
|
|
||||||
"StdinOnce": false,
|
|
||||||
"Tty": true,
|
|
||||||
"User": "",
|
|
||||||
"Volumes": null,
|
|
||||||
"WorkingDir": "",
|
|
||||||
},
|
|
||||||
"Created": "2014-04-04T21:33:52.02361335Z",
|
|
||||||
"Driver": "devicemapper",
|
|
||||||
"ExecDriver": "native-0.1",
|
|
||||||
"ExecIDs": null,
|
|
||||||
"HostConfig": {
|
|
||||||
"Binds": null,
|
|
||||||
"CapAdd": null,
|
|
||||||
"CapDrop": null,
|
|
||||||
"CgroupParent": "",
|
|
||||||
"ContainerIDFile": "",
|
|
||||||
"CpuShares": 512,
|
|
||||||
"CpusetCpus": "0,1",
|
|
||||||
"CpusetMems": "",
|
|
||||||
"Devices": [],
|
|
||||||
"Dns": null,
|
|
||||||
"DnsSearch": null,
|
|
||||||
"ExtraHosts": null,
|
|
||||||
"IpcMode": "",
|
|
||||||
"Links": null,
|
|
||||||
"LogConfig": {
|
|
||||||
"Config": null,
|
|
||||||
"Type": "json-file"
|
|
||||||
},
|
|
||||||
"LxcConf": null,
|
|
||||||
"Memory": 16777216,
|
|
||||||
"MemorySwap": -1,
|
|
||||||
"NetworkMode": "",
|
|
||||||
"PidMode": "",
|
|
||||||
"PortBindings": {
|
|
||||||
"80/tcp": [
|
|
||||||
{
|
|
||||||
"HostIp": "0.0.0.0",
|
|
||||||
"HostPort": "80"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"Privileged": false,
|
|
||||||
"PublishAllPorts": false,
|
|
||||||
"ReadonlyRootfs": false,
|
|
||||||
"RestartPolicy": {
|
|
||||||
"MaximumRetryCount": 0,
|
|
||||||
"Name": ""
|
|
||||||
},
|
|
||||||
"SecurityOpt": null,
|
|
||||||
"Ulimits": null,
|
|
||||||
"VolumesFrom": null
|
|
||||||
}
|
|
||||||
"HostnamePath": "/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/hostname",
|
|
||||||
"HostsPath": "/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/hosts",
|
|
||||||
"ID": "1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b",
|
|
||||||
"Image": "df53773a4390e25936f9fd3739e0c0e60a62d024ea7b669282b27e65ae8458e6",
|
|
||||||
"LogPath": "/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b-json.log",
|
|
||||||
"MountLabel": "",
|
|
||||||
"Name": "/ecstatic_ptolemy",
|
|
||||||
"NetworkSettings": {
|
"NetworkSettings": {
|
||||||
"Bridge": "docker0",
|
"Bridge": "",
|
||||||
"Gateway": "172.17.42.1",
|
"EndpointID": "",
|
||||||
|
"Gateway": "",
|
||||||
"GlobalIPv6Address": "",
|
"GlobalIPv6Address": "",
|
||||||
"GlobalIPv6PrefixLen": 0,
|
"GlobalIPv6PrefixLen": 0,
|
||||||
"IPAddress": "172.17.0.2",
|
"HairpinMode": false,
|
||||||
"IPPrefixLen": 16,
|
"IPAddress": "",
|
||||||
|
"IPPrefixLen": 0,
|
||||||
"IPv6Gateway": "",
|
"IPv6Gateway": "",
|
||||||
"LinkLocalIPv6Address": "",
|
"LinkLocalIPv6Address": "",
|
||||||
"LinkLocalIPv6PrefixLen": 0,
|
"LinkLocalIPv6PrefixLen": 0,
|
||||||
"MacAddress": "",
|
"MacAddress": "",
|
||||||
|
"NetworkID": "",
|
||||||
"PortMapping": null,
|
"PortMapping": null,
|
||||||
"Ports": {
|
"Ports": null,
|
||||||
"80/tcp": [
|
"SandboxKey": "",
|
||||||
{
|
"SecondaryIPAddresses": null,
|
||||||
"HostIp": "0.0.0.0",
|
"SecondaryIPv6Addresses": null
|
||||||
"HostPort": "80"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"Path": "/usr/sbin/nginx",
|
"ResolvConfPath": "/var/lib/docker/containers/d2cc496561d6d520cbc0236b4ba88c362c446a7619992123f11c809cded25b47/resolv.conf",
|
||||||
"ProcessLabel": "",
|
"HostnamePath": "/var/lib/docker/containers/d2cc496561d6d520cbc0236b4ba88c362c446a7619992123f11c809cded25b47/hostname",
|
||||||
"ResolvConfPath": "/etc/resolv.conf",
|
"HostsPath": "/var/lib/docker/containers/d2cc496561d6d520cbc0236b4ba88c362c446a7619992123f11c809cded25b47/hosts",
|
||||||
|
"LogPath": "/var/lib/docker/containers/d2cc496561d6d520cbc0236b4ba88c362c446a7619992123f11c809cded25b47/d2cc496561d6d520cbc0236b4ba88c362c446a7619992123f11c809cded25b47-json.log",
|
||||||
|
"Name": "/adoring_wozniak",
|
||||||
"RestartCount": 0,
|
"RestartCount": 0,
|
||||||
"State": {
|
"Driver": "devicemapper",
|
||||||
"Dead": false,
|
"ExecDriver": "native-0.2",
|
||||||
"Error": "",
|
"MountLabel": "",
|
||||||
"ExitCode": 0,
|
"ProcessLabel": "",
|
||||||
"FinishedAt": "0001-01-01T00:00:00Z",
|
|
||||||
"OOMKilled": false,
|
|
||||||
"Paused": false,
|
|
||||||
"Pid": 858,
|
|
||||||
"Restarting": false,
|
|
||||||
"Running": true,
|
|
||||||
"StartedAt": "2014-04-04T21:33:54.16259207Z",
|
|
||||||
},
|
|
||||||
"Volumes": {},
|
"Volumes": {},
|
||||||
"VolumesRW": {},
|
"VolumesRW": {},
|
||||||
|
"AppArmorProfile": "",
|
||||||
|
"ExecIDs": null,
|
||||||
|
"HostConfig": {
|
||||||
|
"Binds": null,
|
||||||
|
"ContainerIDFile": "",
|
||||||
|
"LxcConf": [],
|
||||||
|
"Memory": 0,
|
||||||
|
"MemorySwap": 0,
|
||||||
|
"CpuShares": 0,
|
||||||
|
"CpuPeriod": 0,
|
||||||
|
"CpusetCpus": "",
|
||||||
|
"CpusetMems": "",
|
||||||
|
"CpuQuota": 0,
|
||||||
|
"BlkioWeight": 0,
|
||||||
|
"OomKillDisable": false,
|
||||||
|
"Privileged": false,
|
||||||
|
"PortBindings": {},
|
||||||
|
"Links": null,
|
||||||
|
"PublishAllPorts": false,
|
||||||
|
"Dns": null,
|
||||||
|
"DnsSearch": null,
|
||||||
|
"ExtraHosts": null,
|
||||||
|
"VolumesFrom": null,
|
||||||
|
"Devices": [],
|
||||||
|
"NetworkMode": "bridge",
|
||||||
|
"IpcMode": "",
|
||||||
|
"PidMode": "",
|
||||||
|
"UTSMode": "",
|
||||||
|
"CapAdd": null,
|
||||||
|
"CapDrop": null,
|
||||||
|
"RestartPolicy": {
|
||||||
|
"Name": "no",
|
||||||
|
"MaximumRetryCount": 0
|
||||||
|
},
|
||||||
|
"SecurityOpt": null,
|
||||||
|
"ReadonlyRootfs": false,
|
||||||
|
"Ulimits": null,
|
||||||
|
"LogConfig": {
|
||||||
|
"Type": "json-file",
|
||||||
|
"Config": {}
|
||||||
|
},
|
||||||
|
"CgroupParent": ""
|
||||||
|
},
|
||||||
|
"GraphDriver": {
|
||||||
|
"Name": "devicemapper",
|
||||||
|
"Data": {
|
||||||
|
"DeviceId": "5",
|
||||||
|
"DeviceName": "docker-253:1-2763198-d2cc496561d6d520cbc0236b4ba88c362c446a7619992123f11c809cded25b47",
|
||||||
|
"DeviceSize": "171798691840"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"Config": {
|
||||||
|
"Hostname": "d2cc496561d6",
|
||||||
|
"Domainname": "",
|
||||||
|
"User": "",
|
||||||
|
"AttachStdin": true,
|
||||||
|
"AttachStdout": true,
|
||||||
|
"AttachStderr": true,
|
||||||
|
"ExposedPorts": null,
|
||||||
|
"Tty": true,
|
||||||
|
"OpenStdin": true,
|
||||||
|
"StdinOnce": true,
|
||||||
|
"Env": null,
|
||||||
|
"Cmd": [
|
||||||
|
"bash"
|
||||||
|
],
|
||||||
|
"Image": "fedora",
|
||||||
|
"Volumes": null,
|
||||||
|
"VolumeDriver": "",
|
||||||
|
"WorkingDir": "",
|
||||||
|
"Entrypoint": null,
|
||||||
|
"NetworkDisabled": false,
|
||||||
|
"MacAddress": "",
|
||||||
|
"OnBuild": null,
|
||||||
|
"Labels": {},
|
||||||
|
"Memory": 0,
|
||||||
|
"MemorySwap": 0,
|
||||||
|
"CpuShares": 0,
|
||||||
|
"Cpuset": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
## Getting the IP address of a container instance
|
## Getting the IP address of a container instance
|
||||||
|
|
||||||
To get the IP address of a container use:
|
To get the IP address of a container use:
|
||||||
|
|
||||||
$ docker inspect --format='{{.NetworkSettings.IPAddress}}' 1eb5fabf5a03
|
$ docker inspect --format='{{.NetworkSettings.IPAddress}}' d2cc496561d6
|
||||||
172.17.0.2
|
172.17.0.2
|
||||||
|
|
||||||
## Listing all port bindings
|
## Listing all port bindings
|
||||||
@ -175,7 +176,7 @@ One can loop over arrays and maps in the results to produce simple text
|
|||||||
output:
|
output:
|
||||||
|
|
||||||
$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} \
|
$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} \
|
||||||
{{$p}} -> {{(index $conf 0).HostPort}} {{end}}' 1eb5fabf5a03
|
{{$p}} -> {{(index $conf 0).HostPort}} {{end}}' d2cc496561d6
|
||||||
80/tcp -> 80
|
80/tcp -> 80
|
||||||
|
|
||||||
You can get more information about how to write a go template from:
|
You can get more information about how to write a go template from:
|
||||||
@ -186,79 +187,79 @@ http://golang.org/pkg/text/template/.
|
|||||||
Use an image's ID or name (e.g., repository/name[:tag]) to get information
|
Use an image's ID or name (e.g., repository/name[:tag]) to get information
|
||||||
on it.
|
on it.
|
||||||
|
|
||||||
$ docker inspect fc1203419df2
|
$ docker inspect ded7cd95e059
|
||||||
[{
|
[{
|
||||||
"Architecture": "amd64",
|
"Id": "ded7cd95e059788f2586a51c275a4f151653779d6a7f4dad77c2bd34601d94e4",
|
||||||
"Author": "",
|
"Parent": "48ecf305d2cf7046c1f5f8fcbcd4994403173441d4a7f125b1bb0ceead9de731",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Config": {
|
"Created": "2015-05-27T16:58:22.937503085Z",
|
||||||
"AttachStderr": false,
|
"Container": "76cf7f67d83a7a047454b33007d03e32a8f474ad332c3a03c94537edd22b312b",
|
||||||
|
"ContainerConfig": {
|
||||||
|
"Hostname": "76cf7f67d83a",
|
||||||
|
"Domainname": "",
|
||||||
|
"User": "",
|
||||||
"AttachStdin": false,
|
"AttachStdin": false,
|
||||||
"AttachStdout": false,
|
"AttachStdout": false,
|
||||||
"Cmd": [
|
"AttachStderr": false,
|
||||||
"make",
|
|
||||||
"direct-test"
|
|
||||||
],
|
|
||||||
"Domainname": "",
|
|
||||||
"Entrypoint": [
|
|
||||||
"/dind"
|
|
||||||
],
|
|
||||||
"Env": [
|
|
||||||
"PATH=/go/bin:/usr/src/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
|
|
||||||
],
|
|
||||||
"ExposedPorts": null,
|
"ExposedPorts": null,
|
||||||
"Hostname": "242978536a06",
|
"Tty": false,
|
||||||
"Image": "c2b774c744afc5bea603b5e6c5218539e506649326de3ea0135182f299d0519a",
|
|
||||||
"Labels": {},
|
|
||||||
"MacAddress": "",
|
|
||||||
"NetworkDisabled": false,
|
|
||||||
"OnBuild": [],
|
|
||||||
"OpenStdin": false,
|
"OpenStdin": false,
|
||||||
"StdinOnce": false,
|
"StdinOnce": false,
|
||||||
"Tty": false,
|
"Env": null,
|
||||||
"User": "",
|
|
||||||
"Volumes": null,
|
|
||||||
"WorkingDir": "/go/src/github.com/docker/libcontainer"
|
|
||||||
},
|
|
||||||
"Container": "1c00417f3812a96d3ebc29e7fdee69f3d586d703ab89c8233fd4678d50707b39",
|
|
||||||
"ContainerConfig": {
|
|
||||||
"AttachStderr": false,
|
|
||||||
"AttachStdin": false,
|
|
||||||
"AttachStdout": false,
|
|
||||||
"Cmd": [
|
"Cmd": [
|
||||||
"/bin/sh",
|
"/bin/sh",
|
||||||
"-c",
|
"-c",
|
||||||
"#(nop) CMD [\"make\" \"direct-test\"]"
|
"#(nop) ADD file:4be46382bcf2b095fcb9fe8334206b584eff60bb3fad8178cbd97697fcb2ea83 in /"
|
||||||
],
|
],
|
||||||
"Domainname": "",
|
"Image": "48ecf305d2cf7046c1f5f8fcbcd4994403173441d4a7f125b1bb0ceead9de731",
|
||||||
"Entrypoint": [
|
"Volumes": null,
|
||||||
"/dind"
|
"VolumeDriver": "",
|
||||||
],
|
"WorkingDir": "",
|
||||||
"Env": [
|
"Entrypoint": null,
|
||||||
"PATH=/go/bin:/usr/src/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
|
|
||||||
],
|
|
||||||
"ExposedPorts": null,
|
|
||||||
"Hostname": "242978536a06",
|
|
||||||
"Image": "c2b774c744afc5bea603b5e6c5218539e506649326de3ea0135182f299d0519a",
|
|
||||||
"Labels": {},
|
|
||||||
"MacAddress": "",
|
|
||||||
"NetworkDisabled": false,
|
"NetworkDisabled": false,
|
||||||
"OnBuild": [],
|
"MacAddress": "",
|
||||||
|
"OnBuild": null,
|
||||||
|
"Labels": {}
|
||||||
|
},
|
||||||
|
"DockerVersion": "1.6.0",
|
||||||
|
"Author": "Lokesh Mandvekar \u003clsm5@fedoraproject.org\u003e",
|
||||||
|
"Config": {
|
||||||
|
"Hostname": "76cf7f67d83a",
|
||||||
|
"Domainname": "",
|
||||||
|
"User": "",
|
||||||
|
"AttachStdin": false,
|
||||||
|
"AttachStdout": false,
|
||||||
|
"AttachStderr": false,
|
||||||
|
"ExposedPorts": null,
|
||||||
|
"Tty": false,
|
||||||
"OpenStdin": false,
|
"OpenStdin": false,
|
||||||
"StdinOnce": false,
|
"StdinOnce": false,
|
||||||
"Tty": false,
|
"Env": null,
|
||||||
"User": "",
|
"Cmd": null,
|
||||||
|
"Image": "48ecf305d2cf7046c1f5f8fcbcd4994403173441d4a7f125b1bb0ceead9de731",
|
||||||
"Volumes": null,
|
"Volumes": null,
|
||||||
"WorkingDir": "/go/src/github.com/docker/libcontainer"
|
"VolumeDriver": "",
|
||||||
|
"WorkingDir": "",
|
||||||
|
"Entrypoint": null,
|
||||||
|
"NetworkDisabled": false,
|
||||||
|
"MacAddress": "",
|
||||||
|
"OnBuild": null,
|
||||||
|
"Labels": {}
|
||||||
},
|
},
|
||||||
"Created": "2015-04-07T05:34:39.079489206Z",
|
"Architecture": "amd64",
|
||||||
"DockerVersion": "1.5.0-dev",
|
|
||||||
"Id": "fc1203419df26ca82cad1dd04c709cb1b8a8a947bd5bcbdfbef8241a76f031db",
|
|
||||||
"Os": "linux",
|
"Os": "linux",
|
||||||
"Parent": "c2b774c744afc5bea603b5e6c5218539e506649326de3ea0135182f299d0519a",
|
"Size": 186507296,
|
||||||
"Size": 0,
|
"VirtualSize": 186507296,
|
||||||
"VirtualSize": 613136466
|
"GraphDriver": {
|
||||||
}]
|
"Name": "devicemapper",
|
||||||
|
"Data": {
|
||||||
|
"DeviceId": "3",
|
||||||
|
"DeviceName": "docker-253:1-2763198-ded7cd95e059788f2586a51c275a4f151653779d6a7f4dad77c2bd34601d94e4",
|
||||||
|
"DeviceSize": "171798691840"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
# HISTORY
|
# HISTORY
|
||||||
April 2014, originally compiled by William Henry (whenry at redhat dot com)
|
April 2014, originally compiled by William Henry (whenry at redhat dot com)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user