是否可以使用DockerFile创建虚拟以太网接口,下面是来自DockerFile构建日志的代码片段。
Step 14/17 : run sudo ip link add dummy0 type dummy && sudo ip addr add 192.168.10.12/24 dev dummy0 && sudo ip link set dummy0 up
---> Running in 21c388505e28
RTNETLINK answers: Operation not permitted通过在特权模式下运行映像,我能够创建虚拟接口。下面的命令用于创建虚拟接口。
$ ip link add eth_dummy type dummy
$ ip addr add 172.16.1.1/24 dev eth_dummy
$ ip link set eth_dummy up这些命令需要码头构建不允许的特权模式,以及每次容器从映像启动时如何执行这些命令。
发布于 2020-06-04 08:00:59
您需要使用选项:--cap-add=NET_ADMIN运行docker容器。(参考文献)
发布于 2020-06-06 19:37:52
docker build命令不能选择运行特权命令或更改构建期间使用的嵌入式容器的功能。映像构建过程设计为可移植的,在不同的主机上运行,可能在服务器不信任正在构建的映像的云中运行。
在映像构建期间执行此操作也是没有意义的。build命令的输出是文件系统更改,作为覆盖(通常)文件系统的层存储。当您试图在另一个节点上运行相同的映像时,对网络的更改将丢失。如果这些更改被隔离到容器网络,那么它们将在运行步骤结束时丢失,然后再执行Dockerfile的下一步。
相反,考虑将逻辑移动到启动容器时运行的入口点。
https://serverfault.com/questions/974288
复制相似问题