Docker-Installation von Nginx Probleme und Fehleranalyse

Docker-Installation von Nginx Probleme und Fehleranalyse

Frage:


Beim Installieren Nginx in Docker ist der folgende Fehler aufgetreten:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused “process_linux.go:424: container init caused “rootfs_linux.go:58: mounting \”/docker/nginx/conf\” to rootfs \"/var/lib/docker/overlay2/126c244dc6ee7095b1501a503eb361bade4fc255601ec0b0fe96238b58178958/merged\" at \"/var/lib/docker/overlay2/126c244dc6ee7095b1501a503eb361bade4fc255601ec0b0fe96238b58178958/merged/etc/nginx/nginx.conf\" caused \“not a directory\”"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

Ich installierte das Image und ging direkt zu

docker run \ -p 80:80 \ --name nginx \ -d --restart=always \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /mydata/nginx/logs:/var/log/nginx \ nginx

Dann ging etwas schief.

Fehleranalyse:


Der Teil des Fehlers, den ich verstehe, lautet: Beim Versuch, ein Verzeichnis in einen Ordner einzubinden, /nginx/nginx.conf\" caused \“not a directory\”" , da da da... so ähnlich. Hier habe ich mir den Dateipfad auf dem Host angesehen und festgestellt, dass die lokal erstellte nginx.conf ein Ordner nginx.conf/ war und nicht die Datei nginx.conf die ich wollte.

Richtige Vorgehensweise:


Erstellen einer Datei

mkdir -p /meinedaten/nginx/conf
berühren Sie /mydata/nginx/conf/nginx.conf

vim /meinedaten/nginx/conf/nginx.conf

Schreiben Sie den offiziellen Anfangsinhalt in nginx.conf

#Benutzer niemand;
Arbeiterprozesse 1;

#error_log Protokolle/Fehler.log;
#error_log Protokolle/error.log Hinweis;
#error_log Protokolle/error.log-Info;

#pid-Protokolle/nginx.pid;

Ereignisse {
    Arbeiterverbindungen 1024;
}

http {
    mime.types einschließen;
    Standardtyp Anwendung/Oktett-Stream;

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    # '$status $body_bytes_sent "$http_referer" '
    # '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log Protokolle/access.log Haupt;

    sendfile an;
    #tcp_nopush ein;

    #keepalive_timeout 0;
    KeepAlive-Timeout 65;

    #gzip ein;

    Server {
        hören Sie 80;
        Servername localhost;

        #Zeichensatz koi8-r;

        #access_log Protokolle/Host.access.log Haupt;

        Standort / {
            root /usr/share/nginx/html;
            Index Index.html Index.htm;
        }

        #Fehlerseite 404 /404.html;

        # Server-Fehlerseiten auf die statische Seite /50x.html umleiten
        #
        Fehlerseite 500 502 503 504 /50x.html;
        Standort = /50x.html {
            Stamm-HTML;
        }
    }
}

Dann lauf

Docker-Ausführung \
	-p 80:80 \
	--name nginx \
 	-d --restart=immer \
 	-v /meineDaten/nginx/html:/usr/share/nginx/html \
 	-v /meineDaten/nginx/conf.d:/etc/nginx/conf.d \
 	-v /meineDaten/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
 	-v /meineDaten/nginx/logs:/var/log/nginx \
 	nginx 

prüfen:

Platzieren Sie eine index.html im lokalen /mydata/nginx/html/ .

Neustart: Docker startet Nginx neu

Besuchen Sie http://localhost/

Bild-20211216132625114

Referenzblog:

​ https://www.cnblogs.com/ivictor/p/4834864.html (Zusammenfassung der Verzeichnismontage)

https://blog.csdn.net/qierkang/article/details/92657302

​ https://my.oschina.net/u/3375733/blog/1591091 (Wenn Sie /conf.d/*.conf hinzufügen müssen, können Sie diesen Blog lesen)

​ https://blog.csdn.net/weixin_44757670/article/details/104993869 (Wenn Sie /conf.d/*.conf hinzufügen müssen, können Sie diesen Blog lesen)

Dies ist das Ende dieses Artikels zur Installation von Nginx mit Docker (einschließlich Fehleranalyse). Weitere Informationen zur Installation von Nginx mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Docker-Installation von PHP und Bereitstellungsbeispiel mit Nginx
  • Docker-Installation Nginx Tutorial Implementierung Abbildung
  • So installieren Sie Nginx in Docker
  • So installieren und konfigurieren Sie Docker nginx

<<:  Vorteile von INSERT INTO SET in MySQL

>>:  Unverzichtbares Wissen für Vorstellungsgespräche und schriftliche Tests im Bereich Webentwicklung (Pflichtlektüre)

Artikel empfehlen

Detaillierte Zusammenfassung häufig verwendeter MySQL-Funktionen

Inhaltsverzeichnis Allgemeine MySQL-Funktionen 1....

Einfacher Webseitencode, der im NetEase-Blog verwendet wird

So verwenden Sie den Code im NetEase-Blog: Melden...

So ändern Sie den iTunes-Sicherungspfad unter Windows

0. Vorbereitung: • Schließen Sie iTunes • Beenden...

Kreatives „Über uns“-Webseitendesign

Einzigartige „Über“-Seiten Eine gute Möglichkeit, ...

Wie stellt MySQL eine Verbindung zum entsprechenden Clientprozess her?

Frage Wie können wir bei einer bestimmten MySQL-V...

Analyse der Prinzipien der MySQL Slow Query-bezogenen Parameter

MySQL Slow Query, dessen vollständiger Name „Slow...

Einführung in gängige Befehle und Tastenkombinationen in Linux

Inhaltsverzeichnis 1 Systemeinführung 2 Systemver...

6 Möglichkeiten, die von Linux-Prozessen belegten Portnummern anzuzeigen

Für Linux-Systemadministratoren ist es von entsch...

Lösung zum Erstellen mehrerer Datenbanken, wenn Docker PostgreSQL startet

1 Einleitung Im Artikel „PostgreSQL mit Docker st...

Vorschläge zur Optimierung der Webseiten-Kopfzeile

Logo-Optimierung: 1. Das Logobild sollte so klein...

So stellen Sie mit Navicat eine Remoteverbindung zur Cloud-Server-Datenbank her

Es ist sehr praktisch, eine Verbindung zu einer R...

Detaillierte Erklärung der neuen Array-Methoden in JavaScript es6

Inhaltsverzeichnis 1. fürJedes() 2. arr.filter() ...