### Example #1 ### $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2e23d01384ac iperf-v1:latest "/usr/bin/iperf -s" 10 minutes ago Up 10 minutes 5001/tcp, 0.0.0.0:32768->5201/tcp compassionate_goodall # Append the container ID (CID) to the end of an inspect $ docker inspect --format '{{ .NetworkSettings.IPAddress }}' 2e23d01384ac 172.17.0.1 ### Example #2 ### # Add -q to automatically parse and return the last CID created. $ docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(docker ps -q) 172.17.0.1 ### Example #3 ### # As of Docker v1.3 you can attach to a bash shell docker exec -it 2e23d01384ac bash # That drops you into a bash shell then use the 'ip' command to grab the addr root@2e23d01384ac:/# ip add | grep global inet 172.17.0.1/16 scope global eth0 ### Example #4 ### # Same as above but in a single line $ docker exec -it $(docker ps -q) bash ### Example #5 ### # Pop this into your ~/.bashrc (Linux) or ~/.bash_profile (Mac) dockip() { docker inspect --format '{{ .NetworkSettings.IPAddress }}' "$@" } # Source it to re-read your bashrc/profile source ~/.bash_profile # Now run the function with the container ID you want to get the addr of: $ dockip 2e23d01384ac 172.17.0.1 ### Example #6 ### # Same as above but no argument needed and always return the latest container IP created. dockip() { docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(docker ps -q) } ### Example #7 ### # Add to bashrc/bash_profile to docker exec in passing the CID to dock-exec. E.g dock-exec $(docker ps -q) OR dock-exec 2e23d01384ac dock-exec() { docker exec -i -t $@ bash ;} ### Example #8 ### # Another little bash function you can pop into your bash profile # Always docker exec into the latest container dock-exec() { docker exec -i -t $(docker ps -l -q) bash ;} # The run ip addr ip a ### Example #9 ### # Finally you can export the environmental variables from the running container docker exec -i -t $(docker ps -l -q) env | grep ADDR # Output --> CLOUDNETPERF_CARBON_1_PORT_2003_TCP_ADDR=172.17.0.229 ### Example #10 ### # Or even run the ip address command as a parameter which fires off the ip address command and exits the exec docker exec -i -t $(docker ps -l -q) ip a # 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default # link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 # inet 127.0.0.1/8 scope host lo # valid_lft forever preferred_lft forever # inet6 ::1/128 scope host # valid_lft forever preferred_lft forever # 470: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default # link/ether 02:42:ac:11:00:e9 brd ff:ff:ff:ff:ff:ff # inet 172.17.0.233/16 scope global eth0 # valid_lft forever preferred_lft forever # inet6 fe80::42:acff:fe11:e9/64 scope link # valid_lft forever preferred_lft forever