Mot de passe Root à l'intérieur d'un conteneur Docker
Je suis à l'aide d'un menu fixe l'image de ce qui a été construit à l'aide de la commande de l'UTILISATEUR à utiliser un utilisateur non root appelé dev
.
À l'intérieur d'un conteneur, je suis "dev", mais je souhaite modifier le /etc/hosts
fichier.
J'ai donc besoin d'être root. Je suis en train de la commande su, mais je suis invité à entrer le mot de passe root.
Quelle est la racine par défaut de l'utilisateur mot de passe à l'intérieur d'un conteneur Docker?
- juste exec en tant que root:
docker exec -u 0 -it mycontainer bash
. (voirH6
's réponse)
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vous connecter dans le menu fixe conteneur à l'aide de la racine de l'utilisateur (ID = 0) au lieu de la condition d'utilisateur par défaut lorsque vous utilisez le
-u
option. E. g.de Docker documentation
docker run -u 0 -it mycontainer bash
Finalement, j'ai décidé de reconstruire mon Panneau d'images, de sorte que je change le mot de passe root par quelque chose que je sais.
ou
J'ai eu exactement ce problème de ne pas être en mesure de passer en root avec su parce que j'ai été en cours d'exécution dans le conteneur par un utilisateur non privilégié.
Mais je n'ai pas envie de reconstruire une nouvelle image comme les réponses précédentes suggèrent.
La place, j'ai constaté que je pouvais accéder au conteneur en tant que root à l'aide de 'nsenter", voir: https://github.com/jpetazzo/nsenter
D'abord déterminer le PID de votre conteneur sur l'hôte:
Ensuite utiliser nsenter pour entrer dans le récipient en tant que root
sudo nsenter --target <PID> --mount --uts --ipc --net --pid
Je suis en mesure de le faire fonctionner avec la commande ci-dessous.
Il ya un couple de façons de le faire.
Pour exécuter le Docker substitution de l'UTILISATEUR réglage de
Faire les autorisations de fichier, etc., durant l'image de construire dans le Panneau de fichier
Si tous les paquets sont disponibles dans votre image Linux,
chpasswd
dans le dockerfile avant que l'UTILISATEUR de l'utilitaire.Obtenir un shell de votre conteneur et de changer le mot de passe root:
Je vous suggère une meilleure solution est de donner à l'
--add-host NAME:IP
argument de docker exécuter lors du démarrage du conteneur. Mise à jour de la/etc/hosts/
fichier sans avoir à le devenir.Sinon, vous pouvez remplacer le
USER
réglage en donnant la-u USER
drapeau àdocker run
. Je ne vous le conseille ceci, cependant, que vous ne devrait pas vraiment changer les choses dans un même conteneur. Au lieu de cela, effectuez vos modifications dans un Dockerfile et de construire une nouvelle image.-u
drapeau pour changer d'utilisateur. Je ne pense pas que vous pouvez le faire à partir de l'intérieur du conteneur.Le mot de passe est 'ubuntu' pour le 'ubuntu' utilisateur (au moins dans le panneau pour ubuntu :14.04.03).
NB: 'ubuntu' est créé après le démarrage du récipient, si vous venez de le faire:
Vous obtenez l'invite root directement. De là, vous pouvez forcer le changement de mot de passe de root, de commettre le conteneur et éventuellement de la balise (avec -f) pour ubuntu:dernière comme ceci:
Vous devez reconstruire votre éventuelle dépendances sur ubuntu:plus tard.
Vous pouvez utiliser l'UTILISATEUR root de commande dans votre Dockerfile.
essayez la commande suivante pour obtenir l'accès root
Lorsque vous démarrez le conteneur, vous serez racine, mais vous ne savez pas quoi racine de pw est. Pour le mettre en quelque chose que vous savez tout simplement utiliser "passwd root". Instantané/commettre le conteneur pour enregistrer vos actions.