How can I get Docker Linux container information from within the container itself?

docker, linux

Solution

I've found out that the container id can be found in /proc/self/cgroup

So you can get the id with :

cat /proc/self/cgroup | grep -o  -e "docker-.*.scope" | head -n 1 | sed "s/docker-\(.*\).scope/\\1/"

Problem

I would like to make my `docker containers` aware of their configuration, the same way you can get information about EC2 instances through metadata. I can use (provided `docker` is listening on port `4243`) ``` curl http://172.17.42.1:4243/containers/$HOSTNAME/json ``` to get some of its data, but would like to know if there is a better way at least the get the full ID of the container, because `HOSTNAME` is actually shortened to 12 characters and docker seems to perform a "best match" on it. Also, how can I get the external IP of the docker host (other than accessing the EC2 metadata, which is specific to AWS)

Original source

Related problems