sudo
, der nützlichste Befehl von Linux, fehlt gelegentlich in mehreren Linux-Distributionen, insbesondere in Docker-Containern und leichten Linux-Distributionen.
sudo
ist ein Dienstprogramm, mit dem Benutzer Befehle mit root
ausführen können Zugriff. Es ist der hilfreichste Befehl und in fast allen wichtigen Linux-Distributionen enthalten. Ja, fast alle. Mehrere Linux-Distributionen, insbesondere Docker-Images, liefern sudo
nicht aus Paket standardmäßig. Wenn Sie den Fehler bash: sudo: command not found
sehen es bedeutet einfach, dass sudo
ist nicht installiert.
bash:sudo:Befehl nicht gefunden
sudo
wird genug sein. Die Installation eines neuen Pakets erfordert jedoch die Verwendung von root
Fähigkeiten. sudo
.
Für Ubuntu oder seine Derivate
$ apt install sudo
Für Fedora oder seine Derivate
$ dnf install sudo
Für RHEL oder seine Derivate
$ yum install sudo
Für Arch Linux oder seine Derivate
$ pacman install sudo
Für Docker-Images
Wenn jedoch kein Root-Konto vorhanden ist, wie im Fall zahlreicher Docker-Images, ist dies möglicherweise nicht möglich. root
Benutzer. In diesem Fall müssen wir mit sudo
ein benutzerdefiniertes Image erstellen vorinstalliert. Keine Sorge, es ist ganz einfach.
Benutzerdefiniertes Docker-Image erstellen
Eine Dockerfile ist erforderlich, um ein benutzerdefiniertes Docker-Image zu erstellen. Dockerfile wird verwendet, um alles in einer bestimmten Syntax zu definieren, und der Befehl docker build wird verwendet, um daraus ein Image zu generieren.
Dockerfile erstellen
touch Dockerfile
nano Dockerfile or gedit Dockerfile
# This is the base image we will use to create our custom docker image
FROM ubuntu:latest
#
# the maintainer of an image
LABEL maintainer="[email protected]"
#
# Install the tools (sudo)
RUN apt-get update && apt-get upgrade -y && apt install sudo tasksel -y
Wir haben im dritten Teil das RUN-Label verwendet, das mit „Install the tools“ gekennzeichnet ist, und alle Befehle nach RUN werden ausgeführt, bevor unser benutzerdefiniertes Image generiert wird. Wenn wir also hier einen Befehl eingeben, können wir jedes gewünschte Paket installieren. Wenn wir weiterhin Befehle schreiben, können wir sogar einen vollen Server hochfahren.
Weitere Informationen zu Dockerfile finden Sie in der offiziellen Docker-Dokumentation.
Speichern und schließen Sie die Dockerfile. Öffnen Sie nun die Befehlszeile und navigieren Sie zu dem Verzeichnis, das die Dockerdatei enthält, und führen Sie den folgenden Befehl aus –
sudo docker build -t image-name:tag .
Ändern Sie das image-name:tag mit jedem gewünschten Namen und Tag.
unable to prepare context: context must be a directory: /home/sandy/Dockerfile
. Sie müssen sich also in dem Verzeichnis befinden, das Dockerfile enthält, und verwenden . um das aktuelle Verzeichnis oder den vollständigen Pfad zum Verzeichnis mit Dockerfile.
Und das ist es. docker build
beginnt mit dem Erstellen des Befehls. Es dauert ein paar Sekunden. Sobald dies erledigt ist, wird unser benutzerdefiniertes Docker-Image in unserem lokalen Image-Cache gespeichert. Wir können jetzt den image-name:tag verwenden, um einen Docker-Container zu erstellen, auf dem sudo vorinstalliert ist.