魔法使いの卵

WEBエンジニアの卵の成長記録

Dockerイメージやコンテナの情報を表示したり稼働中のコンテナ内にsshを使わないでアクセスする方法

イメージやコンテナの詳細情報がみたい時

vagrant@Ubuntu1504:~/Docker$ docker inspect イメージID or コンテナID

実際に作ったコンテナ(echoだけするコンテナ)の情報を見てみる

vagrant@Ubuntu1504:~$ docker inspect コンテナID
[
{
    "Id": "63ba088f6f41bb5537d46e2a7f7bc1e05c64edf34d489ae21c4d7eb7b0038302",
    "Created": "2015-09-10T14:45:47.200470566Z",
    "Path": "echo",
    "Args": [
        "now running..."
    ],
    "State": {
        "Running": false,
        "Paused": false,
        "Restarting": false,
        "OOMKilled": false,
        "Dead": false,
        "Pid": 0,
        "ExitCode": 0,
        "Error": "",
        "StartedAt": "2015-09-10T14:45:47.315566079Z",
        "FinishedAt": "2015-09-10T14:45:47.328252943Z"
    },
    "Image": "da5d3a3c121ec8cf01afee83fbd83a79c28626cecc5d20c2332447bb2ec1ed0c",
    "NetworkSettings": {
        "Bridge": "",
        "EndpointID": "",
        "Gateway": "",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "HairpinMode": false,
        "IPAddress": "###IPアドレスが記載される###",
        "IPPrefixLen": 0,
        "IPv6Gateway": "",
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "MacAddress": "",
        "NetworkID": "",
        "PortMapping": null,
        "Ports": null,
        "SandboxKey": "",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null
    },
    "ResolvConfPath": "/var/lib/docker/containers/63ba088f6f41bb5537d46e2a7f7bc1e05c64edf34d489ae21c4d7eb7b0038302/resolv.conf",
    "HostnamePath": "/var/lib/docker/containers/63ba088f6f41bb5537d46e2a7f7bc1e05c64edf34d489ae21c4d7eb7b0038302/hostname",
    "HostsPath": "/var/lib/docker/containers/63ba088f6f41bb5537d46e2a7f7bc1e05c64edf34d489ae21c4d7eb7b0038302/hosts",
    "LogPath": "/var/lib/docker/containers/63ba088f6f41bb5537d46e2a7f7bc1e05c64edf34d489ae21c4d7eb7b0038302/63ba088f6f41bb5537d46e2a7f7bc1e05c64edf34d489ae21c4d7eb7b0038302-json.log",
    "Name": "/echo",
    "RestartCount": 0,
    "Driver": "aufs",
    "ExecDriver": "native-0.2",
    "MountLabel": "",
    "ProcessLabel": "",
    "Volumes": {},
    "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": ""
    },
    "Config": {
        "Hostname": "63ba088f6f41",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "PortSpecs": null,
        "ExposedPorts": null,
        "Tty": false,
        "OpenStdin": true,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        ],
        "Cmd": [
            "echo",
            "now running..."
        ],
        "Image": "echo",
        "Volumes": null,
        "VolumeDriver": "",
        "WorkingDir": "",
        "Entrypoint": null,
        "NetworkDisabled": false,
        "MacAddress": "",
        "OnBuild": null,
        "Labels": {
            "License": "GPLv2",
            "Vendor": "CentOS"
        }
    }
}
]

IPアドレスだけを出したい時

docker inspect --format '{{ .NetworkSettings.IPAddress }}' イメージID or コンテナID
  • コンテナのIDを使ってIPアドレスを表示(イメージでは☓)
vagrant@Ubuntu1504:~/Docker$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' コンテナID
172.17.0.64

sshを使わずに稼働中のコンテナ内にアクセス方法

vagrant@Ubuntu1504:~/Docker$ docker exec -it コンテナID bash

おもったこと

  • pullしてきたイメージの情報を確認する際にも使えそう
  • Dockerは色々と可能性を感じる分、欲求される知識の守備範囲が広いと感じた。
  • また気が向いたら触って行きたいと思う。