nmcli in a docker container

11.5k Views Asked by At

i currently looking for running nmcli in a docker container

nmcli work great on my host but if i'm starting a privileged container nmcli does not work.

to start my container

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

and then running nmcli

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

ifconfig inside my container is ok , i have eth0 and wlan0 of the host

3

There are 3 best solutions below

0
On

The thing about networkmanager is that it runs on dbus. I did the same thing (stracing and seeing what was needed)

Try mounting /var/run/dbus as a volume.

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

0
On

I run my container like this:

docker run -d -it --privileged=true --net host --volume /var/run/dbus:/var/run/dbus [other args here] on Ubuntu18.04 and it works.

Note: --volume /var/run/dbus:/var/run/dbus but not --volume /var/run/dbus, and the above volume sharing flag is used to share the outer system's bus. If you need the container to have its own bus, you will need to configure differently.

0
On

try in docker, this create own dbus in docker

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