Lösen Sie das Problem der Docker-Protokollmontage

Lösen Sie das Problem der Docker-Protokollmontage

Der Schlüssel ist, dass der lokale Server keine Schreibberechtigung hat

Der Schlüssel ist hier (Zugriff verweigert). Ich habe mir die positive Seite nicht angesehen. Ich dachte, es gäbe ein Problem mit der Konfigurationsprotokolldatei. Im Folgenden sind einige Ausnahmen aufgeführt

10:35:09,498 |-FEHLER in ch.qos.logback.core.rolling.RollingFileAppender[DATEI] – Aufruf von openFile(null,true) fehlgeschlagen. java.io.FileNotFoundException: logs/bandwidth.log.2019-04-25.log (Zugriff verweigert)
    bei java.io.FileNotFoundException: logs/bandwidth.log.2019-04-25.log (Berechtigung verweigert)
    bei java.io.FileOutputStream.open0 (native Methode)
    bei bei java.io.FileOutputStream.open(FileOutputStream.java:270)
    bei java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    bei ch.qos.logback.core.recovery.ResilientFileOutputStream.<init>(ResilientFileOutputStream.java:26)
    bei ch.qos.logback.core.FileAppender.openFile(FileAppender.java:204)
    bei ch.qos.logback.core.FileAppender.start(FileAppender.java:127)
    bei ch.qos.logback.core.rolling.RollingFileAppender.start(RollingFileAppender.java:100)
    bei ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:90)
    bei ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)
    bei ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)

Ich habe es viele Male versucht, bevor ich den Grund wirklich verstanden habe. Es wurde auch von etwas inspiriert, das ich im Internet gesehen habe. Ich hoffe, jeder kann auch bemerken, dass ich den folgenden Befehl verwendet habe, um es perfekt zu lösen.

docker run -it --privileged=true -v /dockerlogs:/app/logs -d -p 5080:5080 82edb4bbc79b

Nach dem Mounten eines bestehenden Verzeichnisses auf dem Host kommt es bei der Bedienung im Container zur Meldung „Permission denied“

Dies kann auf zwei Arten gelöst werden:

1> Schalten Sie Selinux aus.

Vorübergehendes Herunterfahren: # setenforce 0

Dauerhaft deaktivieren: Ändern Sie die Datei /etc/sysconfig/selinux und setzen Sie den Wert von SELINUX auf „deaktiviert“.

2> Starten Sie den Container im privilegierten Modus

Angeben des Parameters --privileged

wie:

# docker run -it --privileged=true -v /test:/softlogs

Zusatzwissen: docker -v mountet Logs auf dem Host

Heute habe ich Docker verwendet, um ein vsftp-Image zu ziehen und es auszuführen. Ich wollte die Protokolle dieses Containers auf dem Hostcomputer mounten, um sie einfacher anzeigen zu können. Infolgedessen kamen die Protokolle nicht heraus. Ich habe lange bei Baidu gesucht, konnte aber den Grund nicht finden.

Schließlich wurde festgestellt, dass es notwendig war, zunächst wie folgt eine neue Datei mit demselben Namen wie das Protokoll im Mount-Verzeichnis des Host-Computers zu erstellen.

Das Obige ist der Speicherort meines Containerprotokolls

1. Zu Beginn habe ich den Container ausgeführt und die Protokolle wie folgt gemountet (normalerweise kann er gemountet werden, aber das ist nicht normal~~~), aber die Protokolle kamen nicht heraus.

docker run -d -v /home/ftp:/home/vsftpd -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /home/logs/:/var/log/vsftpd/ -e FTP_USER=cqs -e FTP_PASS=chaoshiye@2020 --name vsftpd fauria/vsftpd

2. Die eigentliche Lösung besteht darin, die Datei vsftpd.log im Mount-Verzeichnis des Hosts zu erstellen und dann das obige Mount auszuführen. Es wird erfolgreich sein.

Der obige Artikel zur Lösung des Problems der Docker-Protokollmontage ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen, und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Docker: Zeigen Sie den Mount-Verzeichnisvorgang des Containers an
  • Beheben Sie das Problem, dass beim Mounten von Dateien oder Verzeichnissen der relative Pfad ./ in Docker Run fehlschlägt
  • Implementierung der Einbindung eines freigegebenen NFS-Verzeichnisses in einen Docker-Container
  • Docker - Zusammenfassung von 3 Möglichkeiten zum Ändern von Container-Mount-Verzeichnissen
  • Docker mountet lokale Verzeichnisse und Datenvolumen-Container-Operationen
  • Docker startet das Elasticsearch-Image und behebt den Fehler nach dem Mounten des Verzeichnisses
  • Beheben Sie das Problem, dass das vom Docker bereitgestellte Verzeichnis nicht gelesen und geschrieben werden kann

<<:  HTML-Tutorial: Sortierte Listen

>>:  Beispielcode für den Song-Fortschrittsbalken in Vue

Artikel empfehlen

MySQL5.6.31 winx64.zip Installations- und Konfigurationstutorial

#1. Herunterladen # #2. Entpacken Sie die Datei l...

MySQL bedingte Abfrage und/oder Verwendung und Priorität Beispielanalyse

Dieser Artikel veranschaulicht anhand von Beispie...

So installieren Sie das Pip-Paket unter Linux

1. Laden Sie das Pip-Installationspaket entsprech...

Lösung für das Problem, dass der Docker-Container nicht gestoppt werden kann

Die Lösung lautet wie folgt: 1. Container löschen...

RGB-Farbtabellensammlung

RGB-Farbtabelle Farbe Englischer Name RGB 16 Farb...

Verwenden von JavaScript-Unterschieden zum Implementieren eines Vergleichstools

Vorwort Bei der Arbeit muss ich jede Woche die vo...

So verwenden Sie den Linux-Befehl nl

1. Befehlseinführung nl (Anzahl der Zeilen) fügt ...

Mehrere Möglichkeiten zum Ausblenden von HTML-Elementen

1. CSS verwenden Code kopieren Der Code lautet wie...

Einführung in berechnete Eigenschaften in Vue

Inhaltsverzeichnis 1. Was ist eine berechnete Eig...