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?
4 Answers
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.
-
6Still 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. Feb 4, 2016 at 16:27
-
6Another 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. Feb 5, 2016 at 8:25 -
2
-
13To 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
-
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.
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>
-
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.– ObeyedJun 22, 2017 at 19:58
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
ifconfig
is somehow deprecated, but some programs still depend on it.ip
in the current version of the software. I need a quick workaround of the problem.