Проблеми з установкою ping у докер


61

Я намагаюся дотримуватися підручника докера, але у віртуальній машині. Я намагався встановити ping в контейнер docker ubuntu за допомогою команди

sudo docker run ubuntu apt-get install ping

Проблема полягає в тому, що докер нічого не встановлює і дає відповідь наступним чином

$ 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
$

Ця ж проблема з’являється, коли я намагаюся будь-що встановити.

Це мої образи:

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

Крім того, коли я запускаю, sudo docker run ubuntu apt-get install pingщо тут використовується "ubuntu"?

Спасибі заздалегідь.



Якщо ваш ping встановлення, може бути корисним також включити nslookup; apt-get install dnsutils
PodTech.io

Відповіді:


69

Згідно з:

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

Спробуйте:

sudo docker run ubuntu apt-get install iputils-ping

Ви вибираєте 'ubuntu' із сховищем: тег замість IMAGE у команді RUN

sudo docker run ubuntu:lucid command

2
Яку команду ви запустили, щоб отримати цю інформацію "Пінг пакета - це віртуальний пакет, наданий: ..."?
Карл Г

bash показує це повідомлення під час виклику команди, яка не знайдена. Не знаю, як хоч.
nicooga

19

запустити apt-get updateодин раз перед встановленням:

sudo docker run ubuntu apt-get update

див. Що робить sudo apt-get update?

apt-get update завантажує списки пакетів із сховищ та "оновлює" їх, щоб отримати інформацію про новітні версії пакетів та їх залежність.


1
Це працює найкраще. docker run -it ubuntu bash, тоді: apt-get update; apt-get install iputils-ping
formica

7

Так, зрештою, вам потрібно знати про три різні теми:

  1. Докер
  2. Ubuntu
  3. Сховища APT

Ось як мені подобається запускати Ubuntu в контейнер Docker:

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

Наголошуючи на тому, що рекомендує @Michael_Scharf, ось як оновити свої сховища APT:

apt-get update

Потім повертаємось до рішення @VTacius, ось як встановити IP-утиліти, відповідальні за команду ping:

apt-get install iputils-ping

Потім, щоб перевірити, чи працюють так, як очікувалося:

which ping
ping superuser.com

Ваша відповідь подібна до інших
1717

Можливо, це правда. Я просто виявив, що кожна відповідь сама по собі не вирішує мою проблему. Кожна відповідь була специфічною для іншої частини головоломки, і якщо застосовувати її у правильному порядку, комбінація цих інших відповідей вирішила мою проблему.
palmbardier

0

Зіткнувся з тією ж проблемою під час використання зображення ubuntu 16.04 у докер.

Наступні кроки допомогли мені вирішити цю проблему.

1.Увійдіть у контейнер docker як bash

$ docker exec - це баш

  1. всередині контейнера докера виконайте наступні команди. Перше оновлення apt-get

root @ ******: / # apt-get update

  1. По-друге встановіть iputils-ping

root @ ******: / # apt-get install iputils-ping

Це має спрацювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.