Detaillierte Erläuterung des Startens und Einhängens des Docker-Nginx-Containers in den lokalen

Detaillierte Erläuterung des Startens und Einhängens des Docker-Nginx-Containers in den lokalen

Zunächst die Struktur innerhalb des Nginx-Containers:

Geben Sie den Container ein:

docker exec -it b511b6049f57 bash

Containerstrukturverzeichnis anzeigen: Tatsächlich entspricht jeder Container einem unabhängigen System.

root@b511b6049f57:/# ls
bin dev home lib64 mnt proc run srv tmp var
booten usw. lib Medien opt root sbin sys usr

Das Strukturverzeichnis von nginx befindet sich im Container:

  • Speicherort des Protokolls: /var/log/nginx/
  • Speicherort der Konfigurationsdatei: /etc/nginx/
  • Projektspeicherort: /usr/share/nginx/html

Wenn Sie einen Standort lokal hinzufügen möchten, müssen Sie die Konfigurationen lokal in diesen Containern mounten:

Die Konfigurationsdatei ist relativ problematisch. Im Allgemeinen muss nginx nur nginx.conf laden. In dokcer wird zuerst nginx.conf geladen, und dann gibt es in nginx.conf eine Zeile mit include /etc/nginx/conf.d/*.conf;, die die Konfigurationsdatei in das Verzeichnis conf.d lädt. Für die Konfiguration müssen Sie es also nur in conf.d mounten und überschreiben.

Erstellen Sie lokal den entsprechenden Ordner und die Hauptkonfigurationsdatei nginx.conf:

mkdir -p /home/test/nginx/{log,conf,html}
berühren Sie nginx.conf

nginx.conf enthält Unterkonfigurationsdateien (letzte Zeile):

Benutzer nginx;

Arbeiterprozesse 1;

Fehlerprotokoll /var/log/nginx/error.log warnen;
pid /var/run/nginx.pid;


Ereignisse {
  Arbeiterverbindungen 1024;
}


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

  log_format main '"$remote_addr" "$http_host" "[$time_local]" "$request" "$status" "$body_bytes_sent" '
          '"$bytes_sent" "$gzip_ratio" "$http_referer" "$http_user_agent" "$http_x_forwarded_for" '
          '"$upstream_addr" "$upstream_response_time" "$request_time" "$request_body" "$http_authorization" ';
  Zugriffsprotokoll /var/log/nginx/access.log Haupt;

  sendfile an;
  #tcp_nopush ein;

  KeepAlive-Timeout 65;

  #gzip ein;

  schließen Sie /etc/nginx/conf.d/*.conf ein;
}

Erstellen Sie eine default.conf unter conf:

Server {

  hören Sie 80;
  Servername localhost;

  #Zeichensatz koi8-r;
  Zugriffsprotokoll /var/log/nginx/log/host.access.log Haupt;

  Standort / {
    #root /data/nginx/html;
    root /usr/share/nginx/html;
    Index Index.html Index.htm;
    #autoindex ein;
  #try_files $uri /index/index/page.html;
    #try_files $uri /index/map/page.html;
  }

  #Fehlerseite 404 /404.html;

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

  Standort ~ /Bilder {
    Standardtyp Anwendung/JSON;
    return 200 '{"Code": "A000000", "Nachricht": "ok", "Zeitstempel": "20180307184426", "Daten": {"isvip": "1", "monthProList": []}}';
  }

  # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht
  #
  #Standort ~ \.php$ {
  # Proxy-Passwort http://127.0.0.1;
  #}

  # Übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht.
  #
  #Standort ~ \.php$ {
  #Wurzel-HTML;
  # fastcgi_pass 127.0.0.1:9000;
  # fastcgi_index index.php;
  # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  #fastcgi_params einschließen;
  #}

  # Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokumentenstammverzeichnis
  # stimmt mit nginx überein
  #
  #Standort ~ /\.ht {
  # alles ablehnen;
  #}
}

Nachdem Sie die oben genannten lokalen Dateien vorbereitet haben, starten Sie den Container und mounten Sie ihn in die lokal zugehörigen Konfigurationsdateien:

docker run --name docker_nginx -d -p 80:80 \
-v /home/test/nginx/log:/var/log/nginx \
-v /home/test/nginx/conf:/etc/nginx/conf.d \
-v /home/test/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/test/nginx/html:/usr/share/nginx/html nginx

###
  Das erste -v: mountet das Log-Verzeichnis. Das zweite -v: mountet das Konfigurationsverzeichnis. Das dritte -v: mountet die Hauptkonfigurationsdatei. Das vierte -v: mountet das Projektverzeichnis

Besuchen Sie nach Abschluss der Montage die Hauptseite:

Greifen Sie dann auf den Speicherort / die Bilder zu, die wir zuvor standardmäßig eingegeben haben:


Starten Sie nginx neu:

docker exec -it b511b6049f57 nginx -s neu laden

Dies ist das Ende dieses Artikels zum lokalen Starten und Mounten des Docker-Nginx-Containers. Weitere relevante Inhalte zum Starten und Mounten von Docker-Nginx 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:
  • 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
  • Lösen Sie das Problem der Docker-Protokollmontage
  • Docker startet das Elasticsearch-Image und behebt den Fehler nach dem Mounten des Verzeichnisses
  • Schritte zum Einrichten und Mounten freigegebener Ordner auf Windows-Host und Docker-Container
  • Docker stellt nginx bereit und mountet Ordner und Dateioperationen
  • Beheben Sie das Problem, dass beim Mounten von Dateien oder Verzeichnissen der relative Pfad ./ in Docker Run fehlschlägt

<<:  Eine kurze Einführung in die MySQL-Speicher-Engine

>>:  JavaScript implementiert die umfassendste Codeanalyse einer einfachen Lupe (ES5)

Artikel empfehlen

So stellen Sie über Navicat eine Remoteverbindung zu MySQL her

Wenn Sie Navicat direkt für die Verbindung über I...

Detaillierte Erklärung der Softwarekonfiguration mit Docker-Compose unter Linux

Vorwort In diesem Artikel werden einige Docker-Co...

Detaillierte Einführung in Protokolle im Linux-System

Inhaltsverzeichnis 1. Logbezogene Dienste 2. Geme...

Bauprozess eines privaten Docker-Lagerhafens

1. Vorbereitung 1.1 Hafen herunterladen Harbor-Do...

Implementierung der Vue-Paketgrößenoptimierung (von 1,72 M auf 94 K)

1. Hintergrund Ich habe vor Kurzem eine Website n...

Zeigen Sie die vom Prozess in Linux belegte Portnummer an

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

Ubuntu 16.04 Installations-Tutorial unter VMware 12

In diesem Artikel finden Sie das Installations-Tu...

Einige Schlussfolgerungen zur Entwicklung mobiler Websites

Die mobile Version der Website sollte zumindest ü...

Detaillierte Erklärung des daily_routine Beispielcodes in Linux

Schauen Sie sich zunächst den Beispielcode an: #/...

JavaScript zum Erzielen eines ausgewogenen digitalen Scroll-Effekts

Inhaltsverzeichnis 1. Hintergrund zur Umsetzung 2...

Apple Mac OS X in VMWare12 installieren – Grafik-Tutorial

1. Einleitung: Da mein Freund einige Systemkenntn...

Native JS-Kapselung vue Tab-Umschalteffekt

In diesem Artikelbeispiel wird der spezifische Co...