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

Docker Compose-Installationsmethoden in verschiedenen Umgebungen

1. Online-Installation Derzeit habe ich nur die O...

Erstellen Sie in 5 Minuten einen WebRTC-Videochat

Im vorherigen Artikel habe ich den detaillierten ...

Detaillierte Erklärung der Linux-Less-Befehlsbeispiele

weniger Dateiname Datei anzeigen kleiner Dateinam...

Der Unterschied und die Verwendung von LocalStorage und SessionStorage in Vue

Inhaltsverzeichnis Was ist LocalStorage Was ist S...

So aktivieren Sie die MySQL-Remoteverbindung auf einem Linux-Server

Vorwort Lernen Sie MySQL, um frühere Nicht-MK-Dat...

So erstellen Sie ein CentOS-Basisimage

Vorwort Derzeit ist das von meiner Firma verwende...

JavaScript zum Erzielen des JD.com-Blitzverkaufseffekts

In diesem Artikel wird der spezifische JavaScript...

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

Gelegentlich muss ich ausgewählte Inhalte gruppier...

Einfache Implementierung von Vue Drag & Drop

In diesem Artikel wird hauptsächlich die einfache...

jQuery-Plugin für ein nahtloses Karussell

Ein nahtloses Karussell ist ein sehr häufiger Eff...

Verwenden Sie nginx, um virtuelle Hosts auf Domänennamenbasis zu konfigurieren

1. Was ist ein virtueller Host? Virtuelle Hosts v...

Vue implementiert mehrere Ideen zum Themenwechsel

Inhaltsverzeichnis Themen dynamisch ändern Die er...

CSS float (float, clear) beliebte Erklärung und Erfahrungsaustausch

Ich bin schon vor langer Zeit mit CSS in Berührun...