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

Ubuntu installiert mehrere Versionen von CUDA und wechselt jederzeit

Ich werde nicht erklären, was CUDA ist, sondern d...

Schnellstart-Tutorial zum Nginx-Dienst

Inhaltsverzeichnis 1. Einführung in Nginx 1. Was ...

Zusammenfassung einiger gängiger Methoden von JavaScript-Arrays

Inhaltsverzeichnis 1. Einleitung 2. filter() 3. K...

Analyse des Konfigurationsprozesses der Nginx-HTTP-Integritätsprüfung

Passive Prüfung Mit passiven Integritätsprüfungen...

CSS erstellt Tippboxen, Bubble-Boxen und Dreiecke

Manchmal benötigen unsere Seiten Eingabeaufforder...

So installieren Sie Nginx in CentOS7 und konfigurieren den automatischen Start

1. Laden Sie das Installationspaket von der offiz...

Schritte zur Vue-Batch-Update-DOM-Implementierung

Inhaltsverzeichnis Szeneneinführung Hohe Reaktion...

Zusammenfassung einiger Vorschläge zum HTML-Code-Schreibstil

Das Protokoll der Ressourcendatei weglassen Es wi...

Das WeChat-Applet implementiert die Aufnahmefunktion

In diesem Artikel wird der spezifische Code für d...

SASS Style Programmierhandbuch für CSS

Da immer mehr Entwickler SASS verwenden, müssen w...

JavaScript+HTML zur Implementierung eines Studenteninformationsmanagementsystems

Inhaltsverzeichnis 1. Einleitung 2. Rendern 3. Co...