J'aimerais savoir via le script bash, si le conteneur en cours d'exécution a été démarré dans --privileged
mode depuis à l'intérieur le conteneur (pas depuis la machine hôte).
Pour l'instant, je suis coincé avec passer un var env avec le drapeau, mais ce n'est pas une solution idéale.
Utilisez la commande docker inspect :
docker inspect --format='{{.HostConfig.Privileged}}' <container id>
Et dans un script bash, vous pourriez avoir un test:
if [[ $(docker inspect --format='{{.HostConfig.Privileged}}' <container id>) == "false" ]]; then
echo not privileged
else
echo privileged
fi
Vous devez essayer d'exécuter une commande qui nécessite le --privileged
flag et voir s'il échoue
Par exemple ip link add dummy0 type dummy
est une commande qui nécessite le --privileged
drapeau pour réussir:
$ docker run --rm -it ubuntu ip link add dummy0 type dummy
RTNETLINK answers: Operation not permitted
tandis que
$ docker run --rm -it --privileged ubuntu ip link add dummy0 type dummy
fonctionne bien.
Dans un script bash, vous pouvez faire quelque chose de similaire à ceci:
ip link add dummy0 type dummy >/dev/null
if [[ $? -eq 0 ]]; then
PRIVILEGED=true
# clean the dummy0 link
ip link delete dummy0 >/dev/null
else
PRIVILEGED=false
fi