75

With the base ubuntu:12.04, ifconfig is not available in the container, though the ip command is available, why is this? and, how to get ifconfig in the container?

Pellaeon
  • 953
  • 1
  • 7
  • 7

4 Answers4

109

You can install ifconfig with apt-get install net-tools. (Specifically, by adding RUN apt-get install -y net-tools to your Dockerfile.)

Based on my test, ifconfig is included in ubuntu:14.04.

Randall Smith
  • 1,346
  • 1
  • 9
  • 4
  • 6
    Still makes me wonder why it's not included by default, but I suppose the point of this container is that it's as minimal as it possibly can be and still work. – Iguananaut Feb 04 '16 at 16:27
  • 6
    Another addendum--on a fresh instance of the Ubuntu container the package lists are not populated either, so you must run `sudo apt-get update` if you haven't already. – Iguananaut Feb 05 '16 at 08:25
  • 2
    `ifconfig` is not included in `ubuntu:16:04`. – JamesThomasMoon Jul 15 '16 at 23:09
  • 13
    To answer @Iguananaut: An Ubuntu VM is 500+ MB, whereas an Ubuntu Docker image is less than 100MB. Guys creating containers images need to draw a line as to what packages/binaries should be included and what not, so as to keep only the basic necessities inside. You know, all of this makes more sense if you think containers as processes, and not as an 'isolated computing environment to play inside and about' – Rushi Agrawal Jul 21 '16 at 08:50
  • I like your `happy profile picture`. \o/ – NYCeyes Apr 07 '20 at 20:05
  • will recommend to install telnet as well (apt-get install telnet) for testing port and host – Nusrat Nuriyev Jan 04 '22 at 23:23
13

Unless and until you can install net-tools, there is no need to give it by default. Also if you want to see the IP address then there is another command available by docker itself:-

docker inspect <container_name or container_id>

docker inspect syntax: docker inspect [OPTIONS] NAME|ID [NAME|ID...]

This cmd will show you every detail of running container including IP address.

Devendra Bhat
  • 233
  • 3
  • 6
5

I also stumbled on this nuisance, but as Devendra wrote in docker inspect you can get all details about the container without net-tools. In my case I needed the container's IP. To extract the IP you can use:

docker inspect <container-id> \
  | grep "\"IPAddress\"" -m 1 \
  | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

EDIT even shorter notation to get container's IP (see docker inspect examples):

docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container-id-or-name>
Obeyed
  • 55
  • 1
  • 5
2

You can install it using

apt-get install net-tools 

or if you are using redhut linux install it using yum package manager

yum install net-tools