Dockerにpingをインストールする際の問題


61

私は仮想マシンでdockerチュートリアルに従うことを試みています。私はコマンドでubuntu docker containerにpingをインストールしようとしました

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ここで使用する「ubuntu」は何ですか?

前もって感謝します。



pingをインストールする場合は、nslookupも含めると便利です。apt-get 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

RUNコマンドのIMAGEの代わりにrepository:tagを使用して「ubuntu」を選択します

sudo docker run ubuntu:lucid command

2
この情報を取得するためにどのコマンドを実行しましたか?「パッケージpingは次によって提供される仮想パッケージです...」
カールG

bashは、見つからないコマンドを呼び出すとそのメッセージを表示します。方法はわかりません。
nicooga

19

apt-get updateインストールの前に1回実行します。

sudo docker run ubuntu apt-get update

何を参照してsudo apt-get updateください?

apt-get update リポジトリからパッケージリストをダウンロードし、それらを「更新」して、パッケージの最新バージョンとその依存関係に関する情報を取得します。


1
これはうまく機能します。docker run -it ubuntu bash、その後:apt-get update; iputils-pingをインストールapt-getの
フォーマイカ

7

ええ、最終的には3つの異なるトピックについて知る必要があります。

  1. Docker
  2. Ubuntu
  3. APTリポジトリ

DockerコンテナーでUbuntuを実行する方法を次に示します。

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

@Michael_Scharfが推奨する内容を反映して、APTリポジトリを更新する方法は次のとおりです。

apt-get update

次に、@ VTaciusのソリューションに戻って、pingコマンドを実行するIPユーティリティをインストールする方法を次に示します。

apt-get install iputils-ping

次に、物事が期待どおりに機能していることを確認します。

which ping
ping superuser.com

あなたの答えは他の人のようです
-yass

おそらくそれは本当です。私はちょうど、それぞれの答え自体が問題を解決しなかったことを発見しました。各回答はパズルの異なる部分に固有のものであり、正しい順序で適用すると、これらの他の回答の組み合わせで問題が解決しました。
-palmbardier

1

Dockerでubuntu 16.04イメージを使用するときに同じ問題に直面しました。

次の手順は、この問題の解決に役立ちました。

1. bashとしてdockerコンテナーにログインします

$ docker exec -it bash

  1. Dockerコンテナ内で、次のコマンドを実行します。最初の更新apt-get

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

  1. 2番目のインストールiputils-ping

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

これは動作するはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.