2016-10-06 18 views
65

を発見していない私は、次のように私がUbuntuを使用してドッカーコンテナを持っている:ドッカー - Ubuntuで - bashの:pingを実行:コマンド

docker run -it ubuntu /bin/bash 

pingを持っていないようですが。例えば。

bash: ping: command not found 

私はそれをインストールする必要がありますか?

かなり基本的なコマンドが欠落しているようです。私は何も報告していないwhereis pingを試しました。

+2

Dockerイメージを最小限に抑えることはまったく適切です。ほとんどの場合、コンテナは何もすることはありませんが、単一のアプリケーションを実行します。なぜアプリケーションに必要のないものをインストールするのですか? –

+0

単に診断を実行したい場合は、busybox(pingを含むイメージ)を実行するほうが簡単です(例:docker run -it --rm busybox ping my-server)。 –

答えて

152

ドッカー画像はかなり最小限である、しかし、あなたは経由して、あなたの公式Ubuntuのドッキングウィンドウの画像にpingをインストールすることができます。

apt-get update 
apt-get install iputils-ping 

チャンスはあなたがping自分のイメージを必要といけないですし、ちょうどテストの目的のためにそれを使用したいです。上の例はあなたを助けます。

イメージにpingが必要な場合は、上記のコマンドを実行したコンテナをDockerfileまたはcommitという新しいイメージに作成できます。

コミット:

docker commit -m "Installed iputils-ping" --author "Your Name <[email protected]>" ContainerNameOrId yourrepository/imagename:tag 

Dockerfile:など

4

Thisをドッカーされた後、aptのキャッシュファイルをクリアするなど、ドッキングウィンドウの画像の作成に関するベストプラクティスがある

FROM ubuntu 
RUN apt-get update && apt-get install -y iputils-ping 
CMD bash 

ますのでご注意くださいUbuntu用のハブページとそれを作成する方法はthisです。インストールされている最小限のパッケージしかないので、余分なものが必要な場合は、自分でインストールする必要があります。

apt-get update && apt-get install -y iputils-ping 

は、しかし、通常は、あなたが「Dockerfile」を作成し、それを構築したい:

mkdir ubuntu_with_ping 
cat >ubuntu_with_ping/Dockerfile <<'EOF' 
FROM ubuntu 
RUN apt-get update && apt-get install -y iputils-ping 
CMD bash 
EOF 
docker build -t ubuntu_with_ping ubuntu_with_ping 
docker run -it ubuntu_with_ping 

チュートリアルを見つけると、彼らは通常、物事を行う方法を確認するために、既存のDockerfilesを閲覧するには、Googleを使用してください:)例の画像についてサイズは、 apt-get installコマンドの後に実行することによって最小化する必要があります。

+0

'echo -e'は実際には[POSIX sh標準に準拠していません](http://pubs.opengroup.org/onlinepubs/009604599/utilities/echo.html)です。これは' -e 'を出力する。 (bashのいくつかのバージョンでさえ、それはデフォルトの動作です)。 'printf'%s \ n '"FROM ubuntu" "apt-get update && apt-get install -y iputils-ping" "CMD bash" 'を使用し、上記のアプリケーションの使用法のセクションを参照してください。リンクされた標準文書 –

+0

bashでも、 '--enable-xpg-echo-default'でコンパイルされたPOSIXモードでは、' echo -e'を期待通りにサポートしません(代わりに標準に準拠した動作をします)環境変数またはその他の実行時設定。 –

+0

(POSIXでは、最初の引数として '-n'が与えられたとき、またはバックスラッシュのリテラルが存在するときに実装が定義した方法でechoを動作させることができますが、それでも*実装定義*動作は使用中の個々のシェルに依存します)。 –

関連する問題