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


61

Я пытаюсь следовать учебнику по докеру, но на виртуальной машине. Я пытался установить 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что здесь используется?

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



Если вы устанавливаете 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 установить 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

Ваш ответ такой же, как и у других
Ясс

Возможно, это правда. Я просто обнаружил, что каждый ответ сам по себе не решает мою проблему. Каждый ответ был определенным для определенной части головоломки, и при применении в правильном порядке, комбинация этих других ответов действительно разрешила мою проблему.
Palmbardier

1

Столкнулся с той же проблемой при использовании образа Ubuntu 16.04 в Docker.

Следующие шаги помогли мне решить эту проблему.

1. Войдите в докер контейнер как Bash

$ docker exec -it bash

  1. внутри контейнера Docker выполните следующие команды. Первое обновление apt-get

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

  1. Вторая установка iputils-ping

root @ ******: / # apt-get установить iputils-ping

Это должно работать.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.