Inhaltsverzeichnis
Der Zweck der Plug-in-Datei:
docker build -t nginx:test-v1 .
Nach dem Login kopieren
" >
docker build -t nginx:test-v1 .
Nach dem Login kopieren
Heim Betrieb und Instandhaltung Nginx Mit welcher Methode werden Nginx-Plug-in-Dateien unter Docker installiert?

Mit welcher Methode werden Nginx-Plug-in-Dateien unter Docker installiert?

May 13, 2023 pm 03:04 PM
docker nginx

Der Zweck der Plug-in-Datei:

  • Die Datei wird nicht durch die Docker-Image-Datei eingeschränkt. Sie kann den Container neu starten und die aktualisierte Datei nicht wiederherstellen

  • Dateien, die während der Ausführung des Containers aufgezeichnet werden, wie z. B. Protokolle. Informationen wie diese können automatisch auf einem externen Speicher gespeichert werden und gehen nicht durch Neustarts des Containers verloren

Es gibt zwei Möglichkeiten, einen Container auszuführen:

  • Docker-Run-Befehl

  • Docker-Compose-Befehl

Die Docker-Run-Befehlsmethode verwendet den Parameter -v, um das externe Hostverzeichnis im Pfad innerhalb des Containers bereitzustellen. Wenn mehrere Bereitstellungspunkte vorhanden sind, geben Sie diese über mehrere an -v-Parameter und nur absolute Pfade können verwendet werden. Der Befehl docker-compose ist einfach zu beschreiben. Um genau zu sein, kann ein Dienst mehrere Container enthalten, und die Bereitstellungskonfiguration des externen Pfads wird ebenfalls konfiguriert -v-Parameter. Der Vorteil besteht darin, dass Sie einen relativen Pfad verwenden können, der natürlich relativ zum Pfad der Datei docker-compose.yml ist. Ein weiterer Vorteil besteht darin, dass der Befehl für Docker-Compose zum Starten des Containers relativ einfach ist.

Angenommen, die Struktur des Bildverpackungspfads lautet wie folgt:

├── build.sh
├── docker-compose.yml
├── Dockerfile
├── mynginx.conf
├── nginx-vol
│   ├── conf.d
│   │   └── mynginx.conf
│   ├── html
│   │   └── index.html
│   └── logs
│       ├── access.log
│       └── error.log
└── run.sh
Nach dem Login kopieren

Dockerfile ist die Konfigurationsdatei zum Erstellen des Bildes und der Inhalt lautet wie folgt:

FROM nginx
LABEL maintainer="xxx" email="<xxx@xxx.com>" app="nginx test" version="v1.0"
ENV WEBDIR="/data/web/html"
RUN mkdir -p ${WEBDIR}
EXPOSE 5180
Nach dem Login kopieren

Geben Sie basierend auf Nginx den neuen Datendateipfad als /data/ an. web/html, und der verfügbar gemachte Port ist 5180.

Kompilieren Sie ein neues Image mit dem folgenden Befehl:

docker build -t nginx:test-v1 .
Nach dem Login kopieren

Das kompilierte Image-Tag ist test-v1. Sie können das lokale Image anzeigen:

docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx        test-v1   d2a0eaea3fac   56 minutes ago   141MB
nginx        latest    605c77e624dd   9 days ago       141MB
Nach dem Login kopieren

Sie können sehen, dass das Image mit dem Tag test-v1 einfach das neue Image ist zusammengestellt.

Erstellen Sie das externe Nginx-Volume nginx-vol und die zugehörigen Ordner conf.d, logs und html und legen Sie die entsprechenden Inhalte in den entsprechenden Verzeichnissen ab. Der Inhalt von iindex.html im HTML-Ordner lautet beispielsweise wie folgt:

<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
                <title>系统时间</title>
        <body>
                <div id="datetime">
                        <script>
                                setInterval("document.getElementById(&#39;datetime&#39;).innerHTML=new Date().toLocaleString();",1000);
                        </script>
                </div>
        </body>
        </head>
</html>
Nach dem Login kopieren

Tatsächlich handelt es sich lediglich um eine Seite, auf der die aktuelle Uhrzeit angezeigt wird.

Der Abschnitt „Protokolle“ ist leer. Der Zweck besteht darin, die Protokolle in den externen Speicher zu schreiben, wenn der Container gestoppt oder das Image zerstört wird.

conf.d unten ist die personalisierte Nginx-Konfiguration. Der Inhalt lautet wie folgt:

server {
    listen       5180;
    #listen  [::]:5180;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        root   /data/web/html;
        index  index.html index.htm;
    }
    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    # deny access to .htaccess files, if Apache&#39;s document root
    # concurs with nginx&#39;s one
    #location ~ /\.ht {
    #    deny  all;
}
Nach dem Login kopieren

Tatsächlich werden der Port und der Root-Pfad basierend auf der Standard-Default.conf von Nginx geändert. Der Zweck besteht darin, zu veranschaulichen, dass auch Nginx-Konfigurationsdateien verwendet werden können Externer Speicher: Wenn Ihr eigenes Programm die Konfigurationsdatei ändern kann, können Sie die Konfigurationsdatei auf diese Weise ändern, während der Container ausgeführt wird. Die geänderte Konfigurationsdatei wird tatsächlich im externen Speicher gespeichert, sodass sie nicht verschwindet, wenn der Container stoppt Die Dateien im Image werden nicht wiederhergestellt.

Docker-Ausführungsmodus

Der Einfachheit halber können Sie den Ausführungsbefehl in ein Shell-Skript wie run.sh schreiben. Der Inhalt lautet wie folgt:

docker run --name nginx-v1 -p 15180:5180 -v /home/project/nginx-test/nginx-vol/logs:/var/log/nginx -v /home/project/nginx-test/nginx-vol/conf.d:/etc/nginx/conf.d -v /home/project/nginx-test/nginx-vol/html:/data/web/html -d nginx:test-v1
Nach dem Login kopieren

Sie können sehen, dass der Befehl 3 -v enthält entsprechen unterschiedlichen externen Speicher-Mounts und werden verschiedenen Verzeichnissen innerhalb des Containers zugeordnet. Die Ports nach

-p (beachten Sie, dass es sich um Kleinbuchstaben handelt) sind der Host-Port bzw. der Container-Port, dh der 15180-Port des Hosts wird dem 5180-Port des Containers zugeordnet, sodass der Nginx-Dienst-Port 5180 vom Container gestartet wird kann auf den 15180-Port des Hosts zugreifen und zugeordnet werden.

Laufende Container anzeigen:

docker ps -a
CONTAINER ID   IMAGE           COMMAND                  CREATED         STATUS         PORTS                                                 NAMES
cf2275da5130   nginx:test-v1   "/docker-entrypoint.…"   6 seconds ago   Up 5 seconds   80/tcp, 0.0.0.0:15180->5180/tcp, :::15180->5180/tcp   nginx-v1
Nach dem Login kopieren

Detaillierte Zuordnung anzeigen:

docker inspect nginx-v1
Nach dem Login kopieren

zeigt vollständige Informationen an, in denen die vollständige Speicher-Mount-Zuordnung im Abschnitt „Mounts“ eingesehen werden kann.

Schauen Sie direkt unter nginx-vol/logs auf dem Host nach. Sie können sehen, dass das Nginx-Laufprotokoll im Container automatisch in den Speicher des externen Hosts geschrieben wird.

ls -l nginx-vol/logs/
total 12
-rw-r--r-- 1 root root 1397 1月   8 15:08 access.log
-rw-r--r-- 1 root root 4255 1月   8 15:59 error.log
Nach dem Login kopieren

Container stoppen:

docker stop nginx-v1
Nach dem Login kopieren

Container löschen:

docker rm nginx-v1
Nach dem Login kopieren

Docker-Compose-Modus

Docker-Compose installieren

apt-get install docker-compose	
Nach dem Login kopieren

Docker-compose.yml-Datei schreiben

version: "3"
services:
        nginx:
                container_name: mynginx
                image: nginx:test-v1
                ports:
                        - 80:5180
                volumes:
                        - ./nginx-vol/html:/data/web/html
                        - ./nginx-vol/logs:/var/log/nginx
                        - ./nginx-vol/conf.d:/etc/nginx/conf.d
                restart: always
Nach dem Login kopieren

container_name: Geben Sie den Containernamen an

Bild: zur Verwendung Spiegelung und entsprechende Tags

Ports: Host-Port- und Container-Port-Zuordnung

Volumes: Externe Speicher-Mount-Zuordnung

Starten Sie den Container

docker-compose up -d
Creating network "nginxtest_default" with the default driver
Creating mynginx ...
Creating mynginx ... done
Nach dem Login kopieren

Sehen Sie sich den Container an

docker ps -a
CONTAINER ID   IMAGE           COMMAND                  CREATED          STATUS          PORTS                                           NAMES
635e2999c825   nginx:test-v1   "/docker-entrypoint.…"   24 seconds ago   Up 22 seconds   80/tcp, 0.0.0.0:80->5180/tcp, :::80->5180/tcp   mynginx
Nach dem Login kopieren

Sie können sehen, dass der Container gemäß Docker-Compose ausgeführt wird Die .yml-Konfiguration, der Port, der Name und der Mount sind alle normal. Der Zugriff auf Port 80 des Hosts entspricht dem 5180-Dienst des Containers.

Stoppen Sie den Container

docker-compose down
Stopping mynginx ... done
Removing mynginx ... done
Removing network nginxtest_default
Nach dem Login kopieren
Wie Sie sehen, ist es einfacher, Docker-Compose zu verwenden.

Das obige ist der detaillierte Inhalt vonMit welcher Methode werden Nginx-Plug-in-Dateien unter Docker installiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So lesen Sie die Docker -Version So lesen Sie die Docker -Version Apr 15, 2025 am 11:51 AM

Um die Docker -Version zu erhalten, können Sie die folgenden Schritte ausführen: Führen Sie den Befehl Docker "Docker --version" aus, um die Client- und Serverversionen anzuzeigen. Für Mac oder Windows können Sie auch Versionsinformationen über die Registerkarte Version der Docker -Desktop -GUI oder das Menü Docker Desktop anzeigen.

So verwenden Sie Docker Desktop So verwenden Sie Docker Desktop Apr 15, 2025 am 11:45 AM

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

So erstellen Sie einen Spiegel in Docker So erstellen Sie einen Spiegel in Docker Apr 15, 2025 am 11:27 AM

Schritte zum Erstellen eines Docker -Images: Schreiben Sie eine Dockerfile, die die Build -Anweisungen enthält. Erstellen Sie das Bild im Terminal mit dem Befehl Docker Build. Markieren Sie das Bild und weisen Sie Namen und Tags mit dem Befehl Docker Tag zu.

So aktualisieren Sie das Bild von Docker So aktualisieren Sie das Bild von Docker Apr 15, 2025 pm 12:03 PM

Die Schritte zur Aktualisierung eines Docker -Images sind wie folgt: Ziehen Sie das neueste Bild -Tag. Neues Bild Löschen Sie das alte Bild für ein bestimmtes Tag (optional) den Container neu (falls erforderlich) neu starten Sie neu (falls erforderlich).

So überprüfen Sie den Namen des Docker -Containers So überprüfen Sie den Namen des Docker -Containers Apr 15, 2025 pm 12:21 PM

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So sehen Sie Protokolle von Docker So sehen Sie Protokolle von Docker Apr 15, 2025 pm 12:24 PM

Zu den Methoden zum Anzeigen von Docker -Protokollen gehören: Verwenden des Befehls docker Protokolle, z. cat /var/log/container_name.log Verwenden Sie den Befehl docker-compose-Protokolle von Docker Compose, zum Beispiel: Docker-compose -f Docker-com

So ändern Sie die Docker -Bildquelle in China So ändern Sie die Docker -Bildquelle in China Apr 15, 2025 am 11:30 AM

Sie können zur Quelle der Inlandsspiegel wechseln. Die Schritte sind wie folgt: 1. Bearbeiten Sie die Konfigurationsdatei /etc/docker/daemon.json und fügen Sie die Spiegelquellenadresse hinzu; 2. Starten Sie den Docker Service Sudo SystemCtl Docker neu, um die Download -Geschwindigkeit und -stabilität des Bilddownloads zu verbessern.

So speichern Sie das Docker -Bild So speichern Sie das Docker -Bild Apr 15, 2025 am 11:54 AM

Um das Bild in Docker zu speichern, können Sie den Befehl docker comit verwenden, um ein neues Bild zu erstellen, das den aktuellen Status des angegebenen Containers Syntax: Docker Commit [Optionen] Container -ID -Bildname enthält. Um das Bild im Repository zu speichern, können Sie den Befehl Docker Push, Syntax: Docker -Push -Bildname [: Tag] verwenden. Um gespeicherte Bilder zu importieren, können Sie den Befehl Docker Pull, Syntax: Docker Pull Bildname [: Tag] verwenden.

See all articles