问题
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
回答1:
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.
回答2:
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
回答3:
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
来源:https://stackoverflow.com/questions/52654962/nmcli-in-a-docker-container