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

Analyse und Lösung des beim Start von MySQL gemeldeten Fehlers „ERROR:2002“

Vorwort Dieser Artikel stellt hauptsächlich die A...

So vereinheitlichen Sie den Zeichensatz einer vorhandenen MySQL-Datenbank

Vorwort In der Datenbank sind einige Datentabelle...

Detaillierte Erklärung zum Ändern des Standardports von nginx

Finden Sie zunächst heraus, wo sich die Konfigura...

Tipps zur HTML-Formatierung und langen Dateien für das Webdesign

<br />Verwandte Artikel: 9 praktische Vorsch...

Verwenden Sie die Befehle more, less und cat in Linux, um Dateiinhalte anzuzeigen

Unter Linux können die Befehle cat, more und less...

Verstehen Sie die Prinzipien und Anwendungen von JSONP in einem Artikel

Inhaltsverzeichnis Was ist JSONP JSONP-Prinzip JS...

Einführung in die Verwendung des Select-Optgroup-Tags in HTML

Gelegentlich muss ich ausgewählte Inhalte gruppier...

Tiefgreifendes Verständnis der JavaScript-Rückruffunktionen

Inhaltsverzeichnis Vorwort Kurzübersicht: JavaScr...

Analyse des Implementierungsprinzips von Vue-Anweisungen

Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...

Empfohlene Methode zur Fehlerbehandlung für canvas.toDataURL image/png

Problemhintergrund: Es ist erforderlich, einen Sc...