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

Interpretation und Verwendung verschiedener React-State-Manager

Zunächst müssen wir wissen, was ein Zustandsmanag...

So konfigurieren Sie /var/log/messages im Ubuntu-Systemprotokoll

1. Problembeschreibung Heute muss ich die Systemp...

JavaScript zum Anzeigen versteckten Formulartexts

Dieser Artikel gibt Ihnen den spezifischen JavaSc...

Lösen Sie das Problem, dass await in forEach nicht funktioniert

1. Einleitung Vor ein paar Tagen bin ich bei der ...

Beispiel für einen Persistenzbetrieb mit Gearman + MySQL

Dieser Artikel verwendet die Gearman+MySQL-Method...

Lösen Sie das Problem, dass Docker das MySQL-Image zu langsam zieht

Nachdem wir eine halbe Stunde lang versucht hatte...

MySQL-Datenbankoptimierung: Indeximplementierungsprinzip und Nutzungsanalyse

Dieser Artikel veranschaulicht anhand von Beispie...

Grundlegendes zu MySQL-Clusterindizes und wie Clusterindizes wachsen

In dieser Anmerkung beschreiben wir kurz Was ist ...