Führen Sie zunächst eine einfache Docker-Installation durch. Um das Image anzupassen, müssen wir ein Basisimage auswählen, um unser eigenes Image zu erstellen: Um es ganz klar auszudrücken, müssen wir die Befehle ausführen, um verschiedene Programme in einem Container mit einer grundlegenden Definition zu installieren, um die sogenannte Dockerfile-Datei zu generieren. In diesem Fall besteht der erste Schritt darin, ein lokales Image als Basisimage für den Betrieb zu finden: 1
2 Im zweiten Schritt müssen wir ein Verzeichnis erstellen, in dem die Dockerfile-Datei gespeichert wird Erstellen Sie unter root ein Verzeichnis docker_demo, um die Dockerfile-Datei und die zu installierenden Programmdateien zu speichern. Da ich eine benutzerdefinierte PHP-Umgebung erstellen möchte, erstellen wir ein komprimiertes PHP7-Paket. wget http://am1.php.net/get/php-7.0.0.tar.gz/from/this/mirror Ändern Sie dann den Namen Jetzt haben wir sowohl PHP als auch Nginx. Was COMPOSER betrifft, können Sie es selbst bedienen, nachdem PHP erfolgreich installiert wurde~~~ Der nächste Schritt besteht darin, die Dockerfile-Datei zu schreiben. Werfen wir vorher einen kurzen Blick auf das Schlüsselwortformat von Dockerfile: FROM gibt an, auf welchem Bild basiert RUN-Installationssoftware verwenden MAINTAINER Der Schöpfer des Bildes CMD ist der Befehl, der ausgeführt wird, wenn der Container gestartet wird. In einer Docker-Datei kann es jedoch nur einen CMD-Befehl geben. Wenn mehrere CMD-Befehle vorhanden sind, wird nur der letzte ausgeführt. ENTRYPOINT Der Befehl, der ausgeführt wird, wenn der Container gestartet wird. In einem Dockerfile kann jedoch nur ein CMD-Befehl vorhanden sein. Wenn mehrere Befehle vorhanden sind, wird nur der letzte ausgeführt. USER Der Benutzer, der den Container betreibt EXPOSE Der vom Dienst im Container freigegebene Port. Der Host muss beim Ausführen des Containers auch eine Portzuordnung durchführen: docker run -d -p 80:8080 centos6xxx Der obige Befehl ordnet Port 8080 innerhalb des Containers Port 80 auf dem Host zu. ENV wird zum Festlegen von Umgebungsvariablen verwendet ADD kopiert Dateien auf dem Host in den entsprechenden Pfad im Container. Alle in den Container kopierten Dateien und Ordner haben die Berechtigung 0755 und UID und GID sind 0. Wenn die Datei in einem erkennbaren komprimierten Format vorliegt, hilft Docker beim Dekomprimieren. ADD wird beim Erstellen des Images nur einmal ausgeführt und beim späteren Ausführen des Containers nicht erneut geladen. Beispiele hierfür sind: HINZUFÜGEN von nginx-1.12.2.tar.gz /usr/local/src VOLUME kann lokale Ordner oder Ordner anderer Container in den Container einbinden. WORKDIR Zu verwendendes Verzeichnis wechseln (entspricht dem CD-Verzeichnis) Die von ONBUILD angegebenen Befehle werden nicht beim Erstellen des Images ausgeführt, sondern in seinen Unterimages. Nachdem wir die grundlegenden Dockerfile-Befehle gelernt haben, versuchen wir, diese Umgebung zu erstellen. Docker-Pull Centos Laden Sie zuerst ein Basis-Image herunter. Wenn Sie diesen Schritt haben, ignorieren Sie ihn bitte. Hier ist mein Dockerfile # Basisbild # Basisimage VON docker.io/centos # MAINTAINERGeschrieben von MAINTAINER [email protected] # nginx-1.12.2.tar.gz in /usr/local/src einfügen und nginx entpacken Komm schon, lege sowohl nginx als auch PHP im Voraus in das Verzeichnis /usr/local/src des Basisimages, um die Kompilierung und Installation zu erleichtern ADD nginx-1.12.2.tar.gz /usr/local/src HINZUFÜGEN von php-7.0.0.tar.gz /usr/local/src # Ausführen des erforderlichen Befehls Installieren Sie eine Reihe chaotischer Abhängigkeitspakete von Nginx RUN yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel AUSFÜHREN: yum install -y libxslt-devel -y gd gd-devel GeoIP GeoIP-devel pcre pcre-devel RUN useradd -M -s /sbin/nologin nginx # Verzeichnis ändern zu /usr/local/src/nginx-1.12.2 ARBEITSVERZEICHNIS /usr/local/src/nginx-1.12.2 # Befehl zum Kompilieren von nginx ausführen AUSFÜHREN ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module && make && make install #Installieren Sie zuerst ein lokales Mysql Führen Sie den Befehl yum install -y wget aus. Führen Sie wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm aus. RUN rpm -ivh mysql57-community-release-el7-8.noarch.rpm Führen Sie den Befehl „yum install -y mysql-server“ aus. #Beginnen Sie an dieser Stelle mit der Installation von PHP. Beginnen Sie wie üblich mit der Installation einiger kompilierter Abhängigkeitspakete. RUN yum -y install epel-release Führen Sie den Befehl yum -y install libmcrypt-devel aus. RUN yum -y installiere libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel ARBEITSVERZEICHNIS /usr/local/src/php-7.0.0 #编译安装RUN ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-config-file-scan-dir=/usr/local/php7/etc/php.d --with-mcrypt=/usr/include --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-gd --with-iconv --with-zlib --enable-xml --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache && make && make install RUN cp php.ini-production /usr/local/php7/etc/php.ini Nachdem die Dockerfile-Datei erfolgreich erstellt wurde, wird sie mit Docker Build erstellt. Docker-Build -t centos_lnmp:v1. Der abschließende . stellt den relativen Pfad zum aktuellen Verzeichnis dar. Sie können auch einen absoluten Pfad verwenden. Dann folgt die lange Wartezeit Bis das Image erfolgreich erstellt ist, beginnen wir erneut Docker-Bilder Wir sehen, dass das Image erfolgreich erstellt wurde (es besteht eine geringe Chance, dass der Build fehlschlägt. In diesem Fall löschen Sie einfach den Container und das Image und erstellen es neu). Führen Sie dann Folgendes aus: docker run -dt -p 80:80 centos_lnmp:v1 Nach erfolgreichem Abschluss können Sie den Container aufrufen und nginx php konfigurieren. 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:
|
<<: js-Datentypen und Beispiele für ihre Beurteilungsmethoden
>>: MySql-Batch-Insert-Optimierung. Beispiel für SQL-Ausführungseffizienz. Detaillierte Erklärung
Der zuständige Verantwortliche für Baidu Input Met...
In diesem Artikel wird der spezifische JavaScript...
Direkt codieren: Wählen Sie „bigint unsigned“ als...
Import: Aufgrund der Projektanforderungen werden ...
Zunächst können Sie den Unterschied zwischen den ...
Inhaltsverzeichnis Voraussetzungen DNS-Domänennam...
Mit der Entwicklung der Internettechnologie werde...
1. Kabellos Führen Sie PowerShell aus und geben S...
1. Installieren Sie das Fcitx-Eingabeframework Zu...
Leistung Zum Beispiel: HTML: <div Klasse="...
Einführung Kürzlich musste ich für einen großen A...
Die Funktion DATE_ADD() addiert einem Datum ein a...
AWS – Amazons Cloud-Computing-Serviceplattform Ic...
Vor einiger Zeit habe ich einen Blogbeitrag mit d...
Wir alle kennen die MySQL-Funktion count(), mit d...