Problems installing ping in docker
I am trying to follow the docker tutorial but in a virtual machine. I've tried to install ping in ubuntu docker container with the command
sudo docker run ubuntu apt-get install pingThe problem is that docker doesn't install anything and gives the answer as follows
$ sudo docker run ubuntu apt-get install ping
Reading package lists...
Building dependency tree...
Package ping is a virtual package provided by: inetutils-ping 2:1.8-6 iputils-ping 3:20101006-1ubuntu1
E: Package 'ping' has no installation candidate
$The same problem appears when I'm trying to install anything.
These are my images:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 3a28cc5bcc53 19 minutes ago 247.6 MB
baselDaemon latest 4e892058b0b2 4 days ago 204.4 MB
ubuntu 13.10 9f676bd305a4 2 weeks ago 178 MB
ubuntu saucy 9f676bd305a4 2 weeks ago 178 MB
ubuntu 13.04 eb601b8965b8 2 weeks ago 166.5 MB
ubuntu raring eb601b8965b8 2 weeks ago 166.5 MB
ubuntu 12.10 5ac751e8d623 2 weeks ago 161 MB
ubuntu quantal 5ac751e8d623 2 weeks ago 161 MB
ubuntu 10.04 9cc9ea5ea540 2 weeks ago 180.8 MB
ubuntu lucid 9cc9ea5ea540 2 weeks ago 180.8 MB
ubuntu 12.04 9cd978db300e 2 weeks ago 204.4 MB
ubuntu latest 9cd978db300e 2 weeks ago 204.4 MB
ubuntu precise 9cd978db300e 2 weeks ago 204.4 MB
learn/tutorial latest 8dbd9e392a96 10 months ago 128 MBAlso, when I run sudo docker run ubuntu apt-get install ping what is the 'ubuntu' used here?
Thank you in advance.
24 Answers
According to:
Package ping is a virtual package provided by: inetutils-ping 2:1.8-6 iputils-ping 3:20101006-1ubuntu1
E: Package 'ping' has no installation candidateTry with:
sudo docker run ubuntu apt-get install iputils-pingYou choose a 'ubuntu' with repository:tag in place of IMAGE in RUN command
sudo docker run ubuntu:lucid command 2 run apt-get update once before the install:
sudo docker run ubuntu apt-get updatesee What does sudo apt-get update do?
1
apt-get updatedownloads the package lists from the repositories and "updates" them to get information on the newest versions of packages and their dependencies.
Yeah ultimately you need to know about three different topics:
- Docker
- Ubuntu
- APT repositories
Here's how I like to get Ubuntu running in a Docker container:
docker run -i -t ubuntu:16.04 /bin/bashEchoing what @Michael_Scharf recommends, here's how you update your APT repositories:
apt-get updateThen working back to @VTacius' solution, here's how to install the IP utilities responsible for the ping command:
apt-get install iputils-pingThen to verify things are working as expected:
which ping
ping superuser.com 2 Faced the same issue when using ubuntu 16.04 image in docker.
The following steps helped me resolve this issue.
Login to docker container as bash
$ docker exec -it <conatiner id> bashinside the docker container, execute following commands. First update apt-get
$ apt-get updateSecond install iputils-ping
$ apt-get install iputils-ping
This should work.