为什么 ifconfig 在 Ubuntu Docker 容器中不可用?

为什么 ifconfig 在 Ubuntu Docker 容器中不可用?

使用基础ubuntu:12.04ifconfig在容器中不可用,但命令ip可用,这是为什么?以及如何进入ifconfig容器?

答案1

您可以使用 安装 ifconfig apt-get install net-tools。 (具体来说,通过添加RUN apt-get install -y net-tools到您的 Dockerfile。)

根据我的测试,ifconfig 包含在 ubuntu:14.04 中。

答案2

除非您可以安装 net-tools,否则无需默认提供。此外,如果您想查看 IP 地址,docker 本身还有另一个命令可用:-

docker inspect <container_name or container_id>

docker 检查句法:docker inspect [OPTIONS] NAME|ID [NAME|ID...]

该 cmd 将显示正在运行的容器的每个细节,包括 IP 地址。

答案3

我也遇到了这个麻烦,但正如 Devendra 在docker 检查您无需执行任何命令即可获取有关容器的所有详细信息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\}'

编辑更短的符号来获取容器的 IP(见docker 检查示例):

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

答案4

您可以使用以下方式安装

apt-get install net-tools 

或者如果你使用 redhut linux,使用 yum 包管理器安装它

yum install net-tools 

相关内容