Problems installing ping in docker

179,592

Solution 1

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 candidate

Try with:

sudo docker run ubuntu apt-get install iputils-ping

You choose a 'ubuntu' with repository:tag in place of IMAGE in RUN command

sudo docker run ubuntu:lucid command

Solution 2

run apt-get update once before the install:

sudo docker run ubuntu apt-get update

see What does sudo apt-get update do?

apt-get update downloads the package lists from the repositories and "updates" them to get information on the newest versions of packages and their dependencies.

Solution 3

Yeah ultimately you need to know about three different topics:

  1. Docker
  2. Ubuntu
  3. APT repositories

Here's how I like to get Ubuntu running in a Docker container:

docker run -i -t ubuntu:16.04 /bin/bash

Echoing what @Michael_Scharf recommends, here's how you update your APT repositories:

apt-get update

Then working back to @VTacius' solution, here's how to install the IP utilities responsible for the ping command:

apt-get install iputils-ping

Then to verify things are working as expected:

which ping
ping superuser.com

Solution 4

Faced the same issue when using ubuntu 16.04 image in docker.

The following steps helped me resolve this issue.

  1. Login to docker container as bash

    $ docker exec -it <conatiner id> bash
    
  2. inside the docker container, execute following commands. First update apt-get

    $ apt-get update
    
  3. Second install iputils-ping

    $ apt-get install iputils-ping
    

This should work.

Share:
179,592

Related videos on Youtube

Scot
Author by

Scot

Bioinformaticist working on pathogen identification pipelines at the University of California - San Francisco.

Updated on September 18, 2022

Comments

  • Scot
    Scot over 1 year

    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 ping
    

    The 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 MB
    

    Also, when I run sudo docker run ubuntu apt-get install ping what is the 'ubuntu' used here?

    Thank you in advance.

    • Admin
      Admin over 9 years
    • Admin
      Admin over 6 years
      If your installing ping, may be useful to also include nslookup; apt-get install dnsutils
  • Carl G
    Carl G almost 8 years
    Which command did you run to get this info "Package ping is a virtual package provided by: ..."?
  • formica
    formica almost 8 years
    This works prefectly. docker run -it ubuntu bash, then: apt-get update; apt-get install iputils-ping
  • ichigolas
    ichigolas about 7 years
    bash shows that message when you call a command that is not found. Not sure how though.
  • yass
    yass about 7 years
    Your answer is like the others
  • palmbardier
    palmbardier about 7 years
    Perhaps that's true. I just found that each answer in and of itself didn't resolve my problem. Each answer was specific to a different piece of the puzzle, and when applied in the correct order, the combination of these other answers did resolve my issue.