docker容器中的nmcli

时间:2018-10-04 20:50:43

标签: docker networkmanager

我目前正在寻找在docker容器中运行nmcli

nmcli在主机上运行良好,但是如果我要启动特权容器,nmcli将不起作用。

启动我的容器

sudo docker run --privileged --net host -it image_with_network-manager /bin/bash

然后运行nmcli

nmcli dev wifi  => Error: Could not create NMClient object: Could not connect: No such file or directory

容器中的ifconfig正常,我拥有主机的eth0和wlan0

3 个答案:

答案 0 :(得分:1)

关于networkmanager的事情是它在 dbus 上运行。我做了同样的事情(跟踪并查看需要的内容)

尝试将/var/run/dbus挂载为一个卷。

sudo docker run --privileged --net host -it --volume /var/run/dbus image_with_network-manager /bin/bash

答案 1 :(得分:1)

我这样运行容器:

docker run -d -it --privileged=true --net host --volume /var/run/dbus:/var/run/dbus [other args here]在Ubuntu18.04上有效。

注意:--volume /var/run/dbus:/var/run/dbus而不是--volume /var/run/dbus,并且上面的音量共享标志用于共享外部系统的总线。如果您需要容器具有自己的总线,则需要进行其他配置。

答案 2 :(得分:1)

在docker中尝试,这会在docker中创建自己的dbus

docker run -it --net=host image_name
        
dbus-uuidgen > /var/lib/dbus/machine-id
mkdir -p /var/run/dbus
dbus-daemon --config-file=/usr/share/dbus-1/system.conf --print-address