web-dev-qa-db-ja.com

Ubuntu Dockerコンテナーでifconfigを使用できないのはなぜですか?

ベース付きubuntu:12.04ifconfigはコンテナーで使用できませんが、ipコマンドは使用できますが、これはなぜですか?そして、どのようにifconfigをコンテナに入れるのですか?

67
Pellaeon

Ifconfigはapt-get install net-toolsを使用してインストールできます。 (具体的には、RUN apt-get install -y net-toolsをDockerfileに追加します。)

私のテストに基づいて、ifconfigはubuntu:14.04に含まれています。

98
Randall Smith

Net-toolsをインストールできるまでは、デフォルトで指定する必要はありません。また、IPアドレスを確認したい場合は、Docker自体で使用できる別のコマンドがあります。

docker inspect <container_name or container_id>

docker inspect 構文:docker inspect [OPTIONS] NAME|ID [NAME|ID...]

このコマンドは、IPアドレスを含む実行中のコンテナーの詳細をすべて表示します。

13
Devendra Bhat

私もこの迷惑に遭遇しましたが、Devendraが docker inspect に書いたように、net-toolsなしでコンテナに関するすべての詳細を取得できます。私の場合、コンテナのIPが必要でした。使用できるIPを抽出するには:

docker inspect <container-id> \
  | grep "\"IPAddress\"" -m 1 \
  | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

[〜#〜] edit [〜#〜]コンテナのIPを取得するためにさらに短い表記( docker inspect example を参照):

docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container-id-or-name>
4
Obeyed