我正在尝试运行一个可以更改网络配置设置的应用程序。例如更改设备的 IP 等。通常,在 Ubuntu 中,netplan
有一个可以实现此目的的程序。但我希望我的程序在 Docker 容器内运行。据我所知,我需要在运行容器时指定和--network host
。--privileged
但在那之后,我可以在 Docker 中使用哪个程序来操作主机的网络设置?
答案1
正如 vidarlo 已经提到的,这是可能的,但可能不是最好的主意。我遇到了类似的问题,在这里我需要更改一些网络配置设置,但必须使用 docker 容器。我通过nsenter
以下方式实现了这一点docker-compose.yaml
:
services:
ubuntu:
container_name: ubuntu
image: ubuntu
command: ["sleep","infinity"]
# The important stuff
pid: "host"
privileged: true
volumes:
- /etc/netplan:/etc/netplan
执行到容器中,编辑你的 netplan 配置并将配置应用到主机:
nsenter --target 1 --mount --net -- netplan apply
免责声明:由于容器具有主机的根访问权限,因此使用此方法具有巨大的安全隐患。