In diesem Artikel wird die Methode zum manuellen Erstellen eines neuen Images mit Docker vorgestellt und mit Ihnen geteilt. Die Details sind wie folgt: Vorhandene lokale Bilder anzeigen: [root@docker ~]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE nginx latest c59f17fe53b0 vor 4 Tagen 108 MB Ubuntu aktuell 747cb2d60bbe vor 3 Wochen 122 MB centos latest 196e0ce0c9fb vor 6 Wochen 197MB Verwenden Sie nun das Basisimage centos, um manuell einen darauf basierenden Webdienst zu erstellen. Hier verwenden wir nginx Starten Sie einen Container und geben Sie ihn ein: [root@docker ~]# docker run -it --name=web centos /bin/bash [root@bab3b6991467 /]# Installieren Sie dann den Nginx-Dienst im Container: [root@bab3b6991467 /]# cd /usr/local/src/ [root@bab3b6991467 src]# yum installiere wget vim Hier verwenden wir die Kompilierung, um nginx zu installieren. Laden Sie also das nginx-Quellpaket herunter und installieren Sie die Kompilierungsumgebung: [root@bab3b6991467 src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz Kompilierungsumgebung: [root@bab3b6991467 src]# yum installiere gcc gcc-c++ glibc make autoconf openssl openssl-devel Installieren Sie einige Abhängigkeitspakete von nginx: [root@bab3b6991467 src]# yum installiere libxslt-devel -y gd gd-devel GeoIP GeoIP-devel pcre pcre-devel Führen Sie anschließend die Installation aus: [root@bab3b6991467 src]# ll insgesamt 960 -rw-r--r--. 1 root root 981687 Okt 17 13:20 nginx-1.12.2.tar.gz [root@bab3b6991467 src]# tar xf nginx-1.12.2.tar.gz [root@bab3b6991467 src]# cd nginx-1.12.2 [root@bab3b6991467 nginx-1.12.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --mit-file-aio --mit-http_ssl_modul --mit-http_realip_modul --mit-http_addition_modul --mit-http_xslt_modul --mit-http_image_filter_modul --mit-http_geoip_modul --mit-http_sub_modul --mit-http_dav_modul --mit-http_flv_modul --mit-http_mp4_modul --mit-http_gunzip_modul --mit-http_gzip_static_modul --mit-http_auth_request_modul --mit-http_random_index_modul --mit-http_secure_link_modul --mit-http_degradation_modul --mit-http_stub_status_modul Erstellen Sie die erforderlichen Benutzer: Benutzeradd -M -s /sbin/nologin nginx Weiter kompilieren: machen && machen installieren chown -R nginx:nginx /usr/local/nginx/ Hier müssen wir einen Parameter des Nginx-Befehls einführen: [root@bab3b6991467 ~]# /usr/local/nginx/sbin/nginx -h -g-Direktiven: globale Direktiven aus der Konfigurationsdatei setzen -g: Anweisungen für die nginx-Konfigurationsdatei festlegen Verlassen Sie nun den Container und kehren Sie zum Hostcomputer zurück [root@bab3b6991467 ~]# beenden Ausfahrt Überprüfen Sie den Status des Containers zu diesem Zeitpunkt: [root@docker ~]# docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN bab3b6991467 centos "/bin/bash" vor 37 Minuten Beendet (0) vor 21 Sekunden Web Mit Docker Diff können Sie sehen, welche Änderungen am Container vorgenommen wurden. Da es zu viele Ausgaben gibt, werden diese hier nicht angezeigt. Verwenden Sie Docker Commit, um dem Webcontainer eine Ebene in einem neuen Image hinzuzufügen: [root@docker ~]# docker commit --help Verwendung: Docker-Commit [OPTIONEN] CONTAINER [REPOSITORY[:TAG]] Erstellen Sie ein neues Image aus den Änderungen eines Containers -m, --message string Commit-Nachricht -a, --author Zeichenfolge Autor (z. B. „John Hannibal Smith <[email protected]>“) Beginnen Sie jetzt mit dem Commit: [root@docker ~]# docker commit -m "nginx auf centos kompilieren" web wadeson/centos_nginx:v1 sha256:210a202d37b8d2c31155c29adf0c7c0b49cfab7ff38234109919de7f4e76d1de Sehen Sie sich das lokale Bild an: [root@docker ~]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE wadeson/centos_nginx v1 210a202d37b8 vor 33 Sekunden 464 MB nginx latest c59f17fe53b0 vor 4 Tagen 108 MB Ubuntu aktuell 747cb2d60bbe vor 3 Wochen 122 MB centos latest 196e0ce0c9fb vor 6 Wochen 197MB Sie können das neue Image sehen, das gerade von Docker übernommen wurde. Starten Sie nun einen Container aus diesem Image, um den Nginx-Dienst bereitzustellen: [root@docker ~]# docker run -d -p80:80 wadeson/centos_nginx:v1 /usr/local/nginx/sbin/nginx -g "Daemon aus;" c12669357e2b09a05a396ac480a04dd1956303b784f894b615d4edb889a737ab Überprüfen Sie anschließend den Container: [root@docker ~]# docker ps -l CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN c12669357e2b wadeson/centos_nginx:v1 "/usr/local/nginx/..." vor 41 Sekunden Aktiv seit 40 Sekunden 0.0.0.0:80->80/tcp thirsty_murdock Sie können sehen, dass der Nginx-Dienst gestartet wurde. Besuchen Sie ihn also: Der gesamte manuelle Build war also erfolgreich Hier einige Erklärungen zu den obigen Befehlen: docker run -d -p80:80 wadeson/centos_nginx:v1 /usr/local/nginx/sbin/nginx -g "Daemon aus;" Die später ausgeführten Befehle richten sich alle an den Container. Da keine Umgebungsvariablen gesetzt sind, wird der vollständige Pfad verwendet. Der Parameter nginx -g bedeutet, dass Sie von außen Anweisungen in die nginx-Konfigurationsdatei einfügen können. Daemon off bedeutet, dass der nginx-Dienst nicht im Backend, sondern im Vordergrund ausgeführt wird (der Dienst im Container muss im Vordergrund ausgeführt werden). Verwenden Sie Docker Top, um den laufenden Prozess des Containers anzuzeigen: [root@docker ~]# docker top c12669357e2b UID PID PPID C STIME TTY ZEIT CMD root 35468 35451 0 02:55? 00:00:00 nginx: Masterprozess /usr/local/nginx/sbin/nginx -g Daemon aus; 1000 35489 35468 0 02:55 ? 00:00:00 nginx: Arbeitsprozess Verwenden Sie Docker Exec, um den Container aufzurufen: [root@docker ~]# docker exec -it c12669357e2b /bin/bash [root@c12669357e2b /]# ps -ef UID PID PPID C STIME TTY ZEIT CMD root 1 0 0 06:55 ? 00:00:00 nginx: Masterprozess /usr/local/nginx/sbin/nginx -g Daemon aus; nginx 5 1 0 06:55 ? 00:00:00 nginx: Arbeitsprozess root 6 0 1 07:01 pts/0 00:00:00 /bin/bash Wurzel 20 6 0 07:01 pts/0 00:00:00 ps -ef Mit Strg+P+Q wird der Container in den Hintergrund verschoben, anstatt sofort beendet zu werden. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Beispiel für die Generierung von Zufallszahlen und die Verkettung von Zeichenfolgen in MySQL
>>: Realisierung des Karusselleffekts basierend auf jQuery
Inhaltsverzeichnis Warum Docker verwenden? Docker...
In diesem Artikel wird der spezifische JavaScript...
In CSS werden Element-Tags entsprechend den unter...
Gründe, warum die 1px-Linie dicker wird Wenn wir ...
Vorgang 1: mit Rückgabewert: Prozedur löschen, fa...
Im Folgenden habe ich einige grundlegende SQL-Ken...
Normalerweise wählt ein CSS-Selektor von oben nac...
Inhaltsverzeichnis 1. Einleitung 2. Detaillierte ...
Download-Adresse: https://dev.mysql.com/downloads...
Basierend auf dem Vue-Bildvergrößerungskomponente...
Vorwort Ab React 16 wurde das Konzept der Fehlerg...
Ich verwende die Funktion zur Spracherkennung mit...
Das Download- und Installationstutorial für MySQL...
Das MySQL-Protokoll für langsame Abfragen ist seh...
Da die Standardparameter des Linux-Kernels auf de...