Wie verwende ich Sudo in einem Andock-Container?
Normalerweise docker Container laufen, mit der Benutzer - root. Ich würde gerne auf einen anderen Benutzer, ist das kein problem, mithilfe von docker ' s-BENUTZER-Richtlinie. Aber dieser Benutzer sollte in der Lage sein zu verwenden sudo in den container. Dieser Befehl fehlt.
Hier ist eine einfache Dockerfile für diesen Zweck:
FROM ubuntu:12.04
RUN useradd docker && echo "docker:docker" | chpasswd
RUN mkdir -p /home/docker && chown -R docker:docker /home/docker
USER docker
CMD /bin/bash
Laufen diese container, bekomme ich angemeldet mit dem user 'Andockfenster'. Wenn ich versuche, sudo, wird der Befehl nicht gefunden werden kann. So habe ich versucht zu installieren die sudo Paket in meinem Dockerfile mit
RUN apt-get install sudo
Diese Ergebnisse in Unable to locate package sudo
InformationsquelleAutor der Frage drubb | 2014-09-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gerade. Als regan darauf hingewiesen, ich hatte, um die Benutzer zu den sudoers-Gruppe. Aber der Hauptgrund war, ich hatte vergessen zu aktualisieren Sie die Repositorys cache, so dass apt-get nicht finden konnte, das sudo-Paket. Es funktioniert jetzt. Hier ist der vollständige code:
InformationsquelleAutor der Antwort drubb
Die anderen Antworten für mich nicht funktioniert. Suchte ich weiter und fand einen blog-postder behandelt, wie ein team war mit nicht-root-innerhalb eines docker-container.
Hier die TL;DR-version:
War ich mit
FROM node:9.3
für diese, aber ich vermute, dass andere ähnliche Behälter Basen würde auch funktionieren.InformationsquelleAutor der Antwort M. Scott Ford
Wenn weder sudo noch apt-get verfügbar ist, im container, können Sie auch springen ins Rennen container als root-Benutzer mit dem Befehl
InformationsquelleAutor der Antwort Tomáš Záluský
wenn Sie eine Verbindung herstellen möchten container und etwas installieren
die Verwendung von apt-get
zunächst wie oben die Antwort von unserem Bruder "Tomáš Záluský"
dann versuchen
funktionierte es bei mir
hoffe, es ist nützlich für alle
InformationsquelleAutor der Antwort Ismail
Wenn Sie einen container als root läuft, läuft ein script (was Sie nicht ändern können) , muss der Zugriff auf die
sudo
Befehl, können Sie einfach erstellen Sie eine neuesudo
script in Ihrem$PATH
, ruft den übergebenen Befehl aus.z.B. In Ihrem Dockerfile:
InformationsquelleAutor der Antwort XtraSimplicity