Ubuntu docker imageをインストールしたばかりです。 "ifconfig"を実行すると、そのようなコマンドがないことが示されます。
だからこれを行うには?ありがとう。
新鮮なUbuntu Dockerイメージで、以下を実行します。
apt-get update
apt-get install net-tools
これらはdockerコンテナにログインするか、これをdockerfileに追加して同じイメージを作成することで実行できます。
あなたも考慮することができます:
RUN apt-get update && apt-get install -y iputils-ping
( Contangoのコメント として):エラーを避けるため、最初にapt-get update
を実行する必要がありますリポジトリがない場合.
「 ifconfigからip への置き換え」を参照してください。
ほとんどの場合、
ifconfig
に代わったコマンドを使用して先に進むことをお勧めします。そのコマンドはip
です、そしてそれは時代遅れのifconfig
のためにステップインする素晴らしい仕事をします。
しかし、 " ホストからのDockerコンテナのIPアドレスの取得 "で見られるように、docker inspect
を使うことはあなたのユースケースによってはもっと役に立つかもしれません。
Dockerイメージを「通常の」Ubuntuインストールとして使用したい場合は、unminimize
を実行することもできます。これはifconfig
以上のものをインストールするので、これはあなたが望むものではないかもしれません。
実行中のコンテナのIPアドレスを取得するには、以下のコマンドを使用してください。
$ ip addr
例:
root@4c712d05922b:/# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope Host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope Host
valid_lft forever preferred_lft forever
247: eth0@if248: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:06 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.6/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:6/64 scope link
valid_lft forever preferred_lft forever
そのIPアドレスを見つけるためにコンテナーでifconfigを使用しようとしていて、ifconfigがなかったので、ここに来ました。あなたが本当にコンテナのifconfigが上記の@ vishnu-narayanan答えで行く必要があるなら、あなたはホスト上でdocker inspectを使うことによってあなたが必要とする情報を得ることができるかもしれません:
docker inspect <containerid>
コンテナーのIPアドレスを含む出力にはたくさんの良いものがあります。
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "12345FAKEID",
"EndpointID": "12345FAKEENDPOINTID",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "01:02:03:04:05:06",
"DriverOpts": null
}
}
Dockerfile内からは、次のような方法でうまくいくはずです。
RUN apt-get update && \
apt-get install -y net-tools
メモリから、dockerが更新手順をキャッシュして期限切れのパッケージがインストールされないようにするために、更新行とパッケージインストール行を組み合わせることをお勧めします。
CLIまたはシェルスクリプトを介してインストールします。
apt-get update && apt-get install net-tools