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

JavaScript, um den Effekt des Klickens auf das Untermenü zu erzielen

In diesem Artikel wird der spezifische JavaScript...

Gespeicherte MySQL-Prozeduren und allgemeine Funktionscodeanalyse

Das Konzept der gespeicherten MySQL-Prozedur: Ein...

JavaScript ermittelt, ob der Browser IE ist

Als Frontend-Entwickler komme ich an den Tücken d...

Verständnis und Anwendungsszenarien von Enumerationstypen in TypeScript

Inhaltsverzeichnis 1. Was ist 2. Verwendung Numer...

Unterschied zwischen var und let in JavaScript

Inhaltsverzeichnis 1. Bereiche werden in verschie...

3 Möglichkeiten, die maximale Anzahl von Verbindungen in MySQL richtig zu ändern

Wir alle wissen, dass die standardmäßige MySQL-Da...

So implementieren Sie das MySQL-Umschalten des Datenspeicherverzeichnisses

So implementieren Sie das MySQL-Umschalten des Da...

Implementierungsprozess des Nginx-Hochverfügbarkeitsclusters

Dieser Artikel stellt hauptsächlich den Implement...

Installieren Sie Ethereum/Ethereum von Grund auf unter CentOS7

Inhaltsverzeichnis Vorwort Fügen Sie Sudo-Schreib...

MySQL-Fehler 1290 (HY000) Lösung

Ich habe lange mit einem Problem gekämpft und das...