如何在我的 ubuntu docker 映像中安装 "ifconfig" 命令?
How to install "ifconfig" command in my ubuntu docker image?
我刚刚安装了ubuntu docker镜像,当我执行"ifconfig"时它说没有这样的命令,我试过apt-get install没有名为[=的包17=](我可以安装一些其他图像)。
那么怎么做呢?
谢谢
在新鲜的 ubuntu docker 图像上,运行
apt-get update
apt-get install net-tools
这些可以通过登录到 docker 容器来执行,或者将其添加到您的 docker 文件以构建具有相同图像的图像。
您还可以考虑:
RUN apt-get update && apt-get install -y iputils-ping
(如 Contango :您必须首先 运行 apt-get update
,以避免因缺少存储库而出错。
参见“Replacing ifconfig with ip”
it is most often recommended to move forward with the command that has replaced ifconfig
. That command is ip
, and it does a great job of stepping in for the out-of-date ifconfig
.
但如“Getting a Docker container's IP address from the host”中所示,根据您的用例,使用 docker inspect
可能更有用。
请使用以下命令获取 运行 容器的 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
在 Dockerfile 中,类似下面的内容应该可以解决问题:
RUN apt-get update && \
apt-get install -y net-tools
根据记忆,最佳做法是将更新和包安装行结合起来,以防止 docker 缓存更新步骤,这可能会导致安装过时的包。
通过 CLI 或 shell 脚本安装它:
apt-get update && apt-get install net-tools
我来这里是因为我试图在容器上使用 ifconfig 来找到它的 IPA 地址,但没有 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
}
}
如果您想使用 Docker 映像作为 "regular" Ubuntu 安装,您也可以 运行 unminimize
。这将安装比 ifconfig
多得多的内容,因此这可能不是您想要的。
sudo apt-get install iproute2
然后 运行
ip 地址显示
有效..
写
sudo apt-get install net-tools
如果 Ubuntu Docker 图片在 GNS3 中无法识别 'ifconfig',您需要在您的主机上打开 Ubuntu docker 图片.
假设您的主机上已经有 docker 并且 ubuntu 从 docker 图像中提取。在您的主机 OS(Linux、CentOS 等)CLI 中输入这些命令。
$docker images
$docker run -it ubuntu
$apt-get update
$apt-get install net-tools
(旁注:您现在可以添加您想要添加的任何其他工具和服务,但现在这只是为了让 ifconfig 起作用。)
$exit
现在您将这些更改提交给 Docker。这个用于提交更改的 link 是最好的总结并且有效(跳到第 4 步):
https://phoenixnap.com/kb/how-to-commit-changes-to-docker-image#htoc-step-3-modify-the-container
当您在 GNS3 中重新打开 docker 图像时,您现在应该可以使用 ifconfig 命令以及添加到容器中的任何其他工具或服务。
尽情享受吧!
对于某些人来说,这可能已经得到充分解决,但是 none 的答案对我来说立即起作用 我正在尝试构建一个 ubuntu 图像,所以这是我使用的有效的 dockerfile使用网络工具安装 ifcondig:
FROM ubuntu:latest
RUN apt-get update && apt-get -qq -y install curl
RUN apt-get update && apt-get install -y apt-utils
RUN apt-get update && apt-get install net-tools
COPY . /app
WORKDIR /app
我刚刚安装了ubuntu docker镜像,当我执行"ifconfig"时它说没有这样的命令,我试过apt-get install没有名为[=的包17=](我可以安装一些其他图像)。
那么怎么做呢? 谢谢
在新鲜的 ubuntu docker 图像上,运行
apt-get update
apt-get install net-tools
这些可以通过登录到 docker 容器来执行,或者将其添加到您的 docker 文件以构建具有相同图像的图像。
您还可以考虑:
RUN apt-get update && apt-get install -y iputils-ping
(如 Contango apt-get update
,以避免因缺少存储库而出错。
参见“Replacing ifconfig with ip”
it is most often recommended to move forward with the command that has replaced
ifconfig
. That command isip
, and it does a great job of stepping in for the out-of-dateifconfig
.
但如“Getting a Docker container's IP address from the host”中所示,根据您的用例,使用 docker inspect
可能更有用。
请使用以下命令获取 运行 容器的 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
在 Dockerfile 中,类似下面的内容应该可以解决问题:
RUN apt-get update && \
apt-get install -y net-tools
根据记忆,最佳做法是将更新和包安装行结合起来,以防止 docker 缓存更新步骤,这可能会导致安装过时的包。
通过 CLI 或 shell 脚本安装它:
apt-get update && apt-get install net-tools
我来这里是因为我试图在容器上使用 ifconfig 来找到它的 IPA 地址,但没有 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
}
}
如果您想使用 Docker 映像作为 "regular" Ubuntu 安装,您也可以 运行 unminimize
。这将安装比 ifconfig
多得多的内容,因此这可能不是您想要的。
sudo apt-get install iproute2 然后 运行 ip 地址显示
有效..
写
sudo apt-get install net-tools
如果 Ubuntu Docker 图片在 GNS3 中无法识别 'ifconfig',您需要在您的主机上打开 Ubuntu docker 图片.
假设您的主机上已经有 docker 并且 ubuntu 从 docker 图像中提取。在您的主机 OS(Linux、CentOS 等)CLI 中输入这些命令。
$docker images
$docker run -it ubuntu
$apt-get update
$apt-get install net-tools
(旁注:您现在可以添加您想要添加的任何其他工具和服务,但现在这只是为了让 ifconfig 起作用。)
$exit
现在您将这些更改提交给 Docker。这个用于提交更改的 link 是最好的总结并且有效(跳到第 4 步):
https://phoenixnap.com/kb/how-to-commit-changes-to-docker-image#htoc-step-3-modify-the-container
当您在 GNS3 中重新打开 docker 图像时,您现在应该可以使用 ifconfig 命令以及添加到容器中的任何其他工具或服务。
尽情享受吧!
对于某些人来说,这可能已经得到充分解决,但是 none 的答案对我来说立即起作用 我正在尝试构建一个 ubuntu 图像,所以这是我使用的有效的 dockerfile使用网络工具安装 ifcondig:
FROM ubuntu:latest
RUN apt-get update && apt-get -qq -y install curl
RUN apt-get update && apt-get install -y apt-utils
RUN apt-get update && apt-get install net-tools
COPY . /app
WORKDIR /app