Проблемы с установкой ping в докере

71174
Scot

Я пытаюсь следовать учебнику по докеру, но на виртуальной машине. Я попытался установить ping в Ubuntu Docker-контейнер с помощью команды

sudo docker run ubuntu apt-get install ping 

Проблема в том, что Docker ничего не устанавливает и дает ответ следующим образом

$ 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что здесь используется?

Заранее спасибо.

41
Посетите: http://askubuntu.com/q/14685 Pandya 9 лет назад 0
Если вы устанавливаете ping, может быть полезно включить nslookup; apt-get установить dnsutils PodTech.io 6 лет назад 0

3 ответа на вопрос

44
VTacius

В соответствии с:

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 
Какую команду вы запустили, чтобы получить эту информацию "Пинг пакета - это виртуальный пакет, предоставленный: ..."? Carl G 7 лет назад 2
bash показывает это сообщение, когда вы вызываете команду, которая не найдена. Не уверен, как, хотя. nicooga 7 лет назад 0
14
Michael_Scharf

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.

Это работает идеально. docker run -it ubuntu bash, затем: apt-get update; apt-get установить iputils-ping formica 7 лет назад 1
2
palmbardier

Да, в конечном итоге вам нужно знать о трех разных темах:

  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 
Ваш ответ похож на другие yass 7 лет назад 0
Возможно, это правда. Я просто обнаружил, что каждый ответ сам по себе не решает мою проблему. Каждый ответ был определенным для отдельной части головоломки, и при применении в правильном порядке, комбинация этих других ответов действительно разрешила мою проблему. palmbardier 7 лет назад 0