Docker verwendet Root, um in den Container zu gelangen

Docker verwendet Root, um in den Container zu gelangen

Führen Sie zuerst den Docker-Container aus

Führen Sie den Befehl als Root-Benutzer aus

sudo docker exec -it -u root ec33c19230ca /bin/bash

Ergänzung: Container-Kommandozeile eingeben und im Hintergrund in Docker ausführen

In Docker haben wir im Allgemeinen zwei Möglichkeiten, Befehle auszuführen. Eine besteht darin, direkt in die Befehlszeile des Containers zu gehen, im Terminal auszuführen und die Ergebnisse anzuzeigen. Die andere besteht darin, im Hintergrund auszuführen und die Ergebnisse nicht im Terminal anzuzeigen.

1. Geben Sie die Container-Befehlszeile ein

su-Wurzel
docker run -i -t ubuntu:16.04 /bin/bash
#Oder führen Sie den folgenden Satz aus: docker run -it ubuntu:16.04 /bin/bash

Der Zweck von -i und -t besteht darin, Ihnen beim Aufrufen des interaktiven Modus zu helfen. Ohne diesen Teil können Sie den Container nicht aufrufen, geschweige denn die Befehlszeile verwenden. /bin/bash bedeutet, dass die Befehlszeile des Containers zum Eingeben von Befehlen verwendet wird. Die Ausführungsergebnisse sind wie folgt:

root@7d150a0fb029:/#

Auf die Wurzel folgt die Container-ID, die anzeigt, dass Sie den Container betreten haben und Befehle eingeben können. Sie können versuchen, einige gängige Befehle einzugeben:

root@7d150a0fb029:/# docker run -i -t ubuntu:16.04 /bin/bash

Das Ergebnis gibt die Kernel-Versionsinformationen des Images aus:

Linux-Version 4.13.0-36-generic (buildd@lgw01-amd64-033) (gcc-Version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)) #40~16.04.1-Ubuntu SMP Freitag, 16. Februar 2018, 23:25:58 UTC

Sie können den Container durch Beenden verlassen.

2. Befehl zur Hintergrundausführung

Geben Sie den folgenden Code ein, -d bedeutet, dass es im Hintergrund ausgeführt wird. Sie können die Funktion des Befehls direkt über docker run --help anzeigen. Der folgende Satz bedeutet, den Code in Anführungszeichen zum Bildprogramm hinzuzufügen und im Hintergrund auszuführen.

docker run -d ubuntu:16.04 /bin/sh -c „während wahr; mache echo hallo Welt; sleep 1; fertig“

Die Ausgabe zeigt nicht das Ergebnis des Laufs, sondern die neu erstellte Container-ID. Hier ist eine Erklärung: Jedes Mal, wenn Sie den Befehl „docker run“ eingeben, wird ein neuer Container erstellt und eine neue ID generiert.

Die Ausgabe lautet wie folgt:

c7188be9bd7b5c0aa91c5eeb72013996c89bfdc2181d1a5ff7f880af6f8aff99

Schauen Sie sich den laufenden Container an:

root@cdl-XPS15R:/home/cdl# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
c7188be9bd7b ubuntu:16.04 "/bin/sh -c 'while t..." vor 13 Sekunden Vor 11 Sekunden keen_vaughan
1b6ba17f7df7 ubuntu:16.04 "/bin/bash" vor 2 Minuten Beendet (0) vor 2 Minuten cocky_noether
7d150a0fb029 ubuntu:16.04 "/bin/bash" vor 4 Minuten Beendet (0) vor 2 Minuten hopeful_banach

Hier können wir feststellen, dass die ersten Ziffern der ID des ersten Containers genau dieselben sind wie die ersten Ziffern der im Hintergrund ausgeführten Container-ID, aber die Länge ist viel länger. Tatsächlich sind sie gleich, aber der Einfachheit halber werden beim Drucken der Ausgabe über den Befehl ps nur die ersten Ziffern angezeigt.

Wenn wir in die Kommandozeile des im Hintergrund laufenden Containers einsteigen wollen, ohne einen neuen Container zu erstellen, geben wir einfach folgenden Befehl ein:

#exec dient zum Aufrufen eines vorhandenen Containers, run zum Erstellen eines neuen Containers docker exec -it c7188be9bd7b /bin/bash

Der gleiche Effekt tritt ein, wenn Sie eine längere ID eingeben:

docker exec -it c7188be9bd7b5c0aa91c5eeb72013996c89bfdc2181d1a5ff7f880af6f8aff99 /bin/bash

Die Ausgabeergebnisse sind:

root@c7188be9bd7b:/#

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • So erhalten Sie ein dauerhaftes kostenloses SSL-Zertifikat von Let’s Encrypt in Docker
  • Docker-Lösung zum Anmelden ohne Root-Rechte
  • So ändern Sie das Root-Passwort von MySQL in Docker
  • So ändern Sie das Root-Passwort in einem Container mit Docker
  • So erhalten Sie Root-Berechtigungen in einem Docker-Container
  • Docker CP kopiert Dateien und gibt den Container ein
  • Lösung für den Docker-Container, der keine Schreibberechtigung für das Host-Verzeichnis hat
  • So fügen Sie Docker ein Zertifikat hinzu

<<:  Zusammenfassung des MySQL Undo Log und Redo Log

>>:  Verwenden Sie vue2+elementui für Hover-Prompts

Artikel empfehlen

Detaillierte Anweisungen zur Installation der MySQL5.7-Datenbank unter Centos7.2

Das MySQL auf dem Server ist in der Version 8.0.1...

So erhalten und verwenden Sie die Zeit im Linux-System

Es gibt zwei Arten von Linux-Systemzeiten. (1) Ka...

Eine kurze Einführung in React

Inhaltsverzeichnis 1. CDN-Einführung 1.1 reagiere...

Implementierung von Platzhaltern und Escape-Zeichen in der Linux-Befehlszeile

Wenn wir Stapeloperationen für einen Dateityp aus...

Detaillierte Erklärung zum Datenaustausch zwischen Vue-Komponenten

Inhaltsverzeichnis 1. In der Projektentwicklung w...

MySQL 5.7.18 Installations- und Konfigurations-Tutorial unter Windows

In diesem Artikel finden Sie das Installations- u...

CSS erzielt den „Bottom Absorption“-Effekt im Footer

Wir stoßen häufig auf dieses Problem: Wie kann ma...

Eine Frage zur Einstellung des Randradius-Werts

Problemdatensatz Heute wollte ich ein kleines Bau...

Warum sollten Sie mit der add_header-Direktive von Nginx vorsichtig sein?

Vorwort Wie wir alle wissen, legt die Nginx-Konfi...

Detaillierte Erklärung zum Einfügen gängiger Nginx-Befehle in Shell-Skripte

1. Erstellen Sie einen Ordner zum Speichern von N...

Verwenden Sie reines CSS, um einen Switch-Effekt zu erzielen

Zuerst ist die Idee Um diesen Effekt zu erzielen,...