662 Stimmen

Wie kann man in einen bereits laufenden Docker-Container mit einem neuen TTY eintreten?

Ich habe einen Container, der den Apache-Dienst im Vordergrund ausführt. Ich möchte in der Lage sein, auf den Container von einer anderen Shell aus zuzugreifen, um darin zu "herumzustochern" und die Dateien zu untersuchen. Im Moment, wenn ich mich an den Container anhänge, sehe ich nur den Apache-Dämon und kann keine Befehle ausführen.

Ist es möglich, einem laufenden Container einen weiteren tty anzuhängen? Möglicherweise kann ich davon profitieren, dass Docker tatsächlich nur um LXC-Container herumwickelt? Ich habe versucht sudo lxc-console -n [container-id] -t [1-4], aber anscheinend wird nur ein tty zur Verfügung gestellt und das ist das, auf dem der Apache-Dämon läuft. Vielleicht gibt es eine Möglichkeit, während des Builds mehrere lxc-Konsolen zu aktivieren?

Ich würde es lieber nicht konfigurieren und den Container mit einem openssh-Dienst erstellen, wenn möglich.

0voto

Dev 00721 Punkte 1

Auf Windows 10 habe ich Docker installiert. Ich führe Jenkins in einem Container aus und stieß auf dieselbe Fehlermeldung. Hier ist eine Schritt-für-Schritt-Anleitung zur Behebung dieses Problems:

Schritt 1: Öffnen Sie gitbash und führen Sie docker run -p 8080:8080 -p 50000:50000 jenkins aus.

Schritt 2: Öffnen Sie ein neues Terminal.

Schritt 3: Führen Sie "docker ps" aus, um eine Liste der laufenden Container zu erhalten. Kopieren Sie die Container-ID.

Schritt 4: Wenn Sie "docker exec -it {Container-ID} sh" oder "docker exec -it {Container-ID} bash" ausführen, erhalten Sie eine Fehlermeldung ähnlich wie "Das Eingabegerät ist kein TTY. Wenn Sie mintty verwenden, versuchen Sie, den Befehl mit 'winpty' zu versehen".

Schritt 5: Führen Sie den Befehl "$winpty docker exec -it {Container-ID} sh" aus.

Voilà!! Sie sind jetzt im Terminal.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X