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

So verwalten Sie große Datei-Uploads und Breakpoint-Resumes basierend auf js

Inhaltsverzeichnis Vorwort Frontend-Struktur Back...

React useEffect verstehen und verwenden

Inhaltsverzeichnis Vermeiden Sie sich wiederholen...

Die Rolle von nextTick in Vue und mehrere einfache Anwendungsszenarien

Zweck Verstehen Sie die Rolle von nextTick und me...

Einige Tipps zur Verwendung von Less in Vue-Projekten

Inhaltsverzeichnis Vorwort 1. Stildurchdringung 1...

So implementieren Sie Vue Page Jump

1. dies.$router.push() 1. Ansicht <Vorlage>...

Verwenden von HTML+CSS zum Verfolgen von Mausbewegungen

Da Benutzer immer datenschutzbewusster werden und...

Vue realisiert einfachen Effekt des Lauflichts

In diesem Artikel wird der spezifische Code von V...

So erstellen Sie einen SVN-Server unter Linux

1: SVN installieren yum install -y Subversion 2. ...

CentOS 7.9 Installations- und Konfigurationsprozess von zabbix5.0.14

Inhaltsverzeichnis 1. Grundlegende Umgebungskonfi...

Hinweise zur Zeitverwaltung des Linux-Kernel-Gerätetreibers

/****************** * Zeitverwaltung des Linux-Ke...