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?

5

4 Answers 4

108

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.

6
  • 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 4, 2016 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 5, 2016 at 8:25
  • 2
    ifconfig is not included in ubuntu:16:04. Jul 15, 2016 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' Jul 21, 2016 at 8:50
  • I like your happy profile picture. \o/
    – NYCeyes
    Apr 7, 2020 at 20:05
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.

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>
2
  • This will however not work inside the container, as the OP requested. Jun 22, 2017 at 7:53
  • You're right. Just seem like a useful tip, and I thought that OP was most likely also looking to find the container's IP.
    – Obeyed
    Jun 22, 2017 at 19:58
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 

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .