ubuntu:12.04
,尽管ifconfig
命令可用,但容器中不存在ip
,为什么呢?以及如何在容器中获取ifconfig
?#1 楼
您可以使用apt-get install net-tools
安装ifconfig。 (具体来说,通过在您的Dockerfile中添加RUN apt-get install -y net-tools
。)根据我的测试,ubuntu:14.04中包含了ifconfig。
评论
仍然让我想知道为什么默认情况下不包括它,但是我想这个容器的要点是它尽可能的小并且仍然可以工作。
–鬣蜥
16年2月4日在16:27
另一个附录-在Ubuntu容器的新实例上,也不填充软件包列表,因此,如果还没有,则必须运行sudo apt-get update。
–鬣蜥
16年5月5日在8:25
ifconfig不包含在ubuntu:16:04中。
–JamesThomasMoon1979
16年7月15日在23:09
回答@Iguananaut:Ubuntu VM为500+ MB,而Ubuntu Docker映像小于100MB。创建容器映像的人需要划定一条线,确定应包含哪些软件包/二进制文件,不包括哪些软件包/二进制文件,以便仅保留基本必需品。您知道,如果您将容器视为进程,而不是“在内部和周围玩耍的隔离计算环境”,那么所有这些都更有意义。
– Rushi Agrawal
16年7月21日在8:50
我喜欢你开心的头像。 \ o /
– NYCeyes
20-4-7在20:05
#2 楼
除非并且直到您可以安装net-tools,否则默认情况下无需提供它。另外,如果您想查看IP地址,则docker本身可以使用另一个命令:-docker inspect <container_name or container_id>
docker inspect语法:
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
此cmd将向您显示正在运行的容器的每个详细信息,包括IP地址。
#3 楼
我也无意中发现了这种麻烦,但是正如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\}'
编辑更短的表示法以获取容器的IP(请参阅docker inspect示例):
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container-id-or-name>
评论
但是,这将无法按照OP的要求在容器内运行。
–杰拉德·施耐德(Gerald Schneider)
17年6月22日在7:53
你是对的。似乎是一个有用的技巧,我认为OP最有可能也在寻找容器的IP。
–服从
17年6月22日在19:58
评论
请参阅Linux网络-“ ip X”而不是ifconfig / route / etc?并且我应该使用Ifconfig退出吗?我知道ifconfig已经过时了,但是有些程序仍然依赖它。
开发人员还活着吗?几年前已弃用。
在当前版本的软件中使用ip时存在错误。我需要快速解决此问题。
“某些程序”和“有错误”:您能具体一点吗?