So stellen Sie PHP-Anwendungen mit Docker bereit: 1. Erstellen Sie eine einfache PHP-Webprojekt-Site1 und packen Sie sie in das Image. 2. Verwenden Sie den im Image integrierten PHP-Webserver, um externe Dienste bereitzustellen auf dem Host-Computer in das Arbeitsverzeichnis des Containers laden. 4. PHP im FPM-Modus ausführen.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Docker-Version 20.10.11, Dell G3-Computer.
Wie stellt man eine PHP-Anwendung mit Docker bereit?
Verwenden Sie Docker, um PHP-Anwendungen zu packen und bereitzustellen.
Wenn die Projektentwicklung schrittweise abgeschlossen ist, müssen Sie sich auf die groß angelegte Clusterbereitstellung, die wiederholte Installation der Umgebung, die Konfiguration und das Hochladen des Quellcodes vorbereiten. Dies ist jedoch nicht schwierig Es ist mühsam, langweilig und ineffizient. Wenn die Release-Version des Projekts in das entsprechende Docker-Image gepackt ist, müssen wir nur das Image abrufen, den Container erstellen und den Container auf jedem Anwendungsserver starten (drei Zeilen mit supereinfachen Befehlen). Walle, Jenkins kann es einfach und vollständig automatisieren).
Lassen Sie uns herausfinden, wie Sie das PHP-Projekt in ein Docker-Image packen.
Einfaches PHP-Docker-Image
Erstellen Sie eine einfache PHP-Webprojekt-Site1, packen Sie sie in das Image und verwenden Sie den im Image integrierten PHP-Webserver, um externe Dienste bereitzustellen.
# 创建项目 mkdir /src/site1 && cd /src/site1 # 写一个简单的 php 页面 vim index.php <?php echo "hello docker"; :wq # 编写项目的 Dockerfile vim Dockerfile # 拉取 php-cli 镜像 FROM php:7.2-cli # copy 项目源文件到镜像 COPY . /apps/site1 # 切换 pwd WORKDIR /apps/site1 # 执行启动命令 使用 php 内置 web 服务器 CMD ["php", "-S 0.0.0.0:80", "-t ./"] :wq # 使用 Dockerfile 创建镜像 site1 版本号为 1.0.0 docker build -t php-site1:1.0.0 . # 查看镜像 docker images # 创建容器 docker run -it -d \ -p 8081:80 \ --name php_site1_1.0.0 \ php-site1:1.0.0 # 查看活动的容器 docker ps # 访问 php 应用 curl -X GET http://localhost:8081/index.php
Erweiterte Installation
php-Docker-Image verwendet standardmäßig Debian als System, das relativ groß ist. Wir können stattdessen das kompaktere Alpine-Image verwenden. Als nächstes installieren wir die Swoole/Redis-Erweiterung (andere häufig verwendete Erweiterungen, das offizielle PHP-Image wurde installiert).
vim server.php
<?php $httpServer = new Swoole\Http\Server("0.0.0.0", 80); $httpServer->set([ 'worker_num' => 1, ]); $httpServer->on("start", function ($server) { echo "Swoole http server is started at http://0.0.0.0:80" . PHP_EOL; }); $httpServer->on("request", function ($request, $response) { // 模拟业务耗时 体验下 swoole 的协程并发 Swoole\Coroutine::sleep(2); $response->header("Content-Type", "text/plain"); $response->end("Hello World"); }); $httpServer->start(); vim Dockerfile FROM php:7.2-cli-alpine # 更新下 apk 的源 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN apk update && apk upgrade RUN apk add m4 make autoconf gcc g++ linux-headers pcre RUN pecl install swoole \ && pecl install redis RUN docker-php-ext-enable swoole \ && docker-php-ext-enable redis COPY . /apps/site2 WORKDIR /apps/site2 ENTRYPOINT ["php", "server.php"]
Paketbild
docker build -t php-site2:1.0.0 . docker images
Container erstellen
# 创建容器 docker run -it -d \ -p 8082:80 --name php_site2_1.0.0 php-site2:1.0.0 # 查看容器 docker ps # 并发压测 swoole 的协程模式可实现EventLoop异步非阻塞IO ab -c 100 -n 1000 http://localhost:8081/
Wenn Sie das Projekt auf dem Host zuordnen möchten, können Sie
docker run -it -d \ -p 80:80 -v $PWD:/apps/site2 --name php_site2_1.0.0 php-site2:1.0.0
das Projektverzeichnis auf dem Host in das Arbeitsverzeichnis des Containers einhängen. Dies entspricht der Verwendung des Containers als Laufzeitumgebung.
php:7.2-apache php:{PHP_VERSION}-apache,以 Apache + MOD_PHP 模式运行容器。 docker run -it -d \ --name php-mod-alpine \ -p 8083:80 \ -v $PWD:/var/www/html php:7.2-apache
vim index.php
<?php echo "hello docker"; :wq curl -X GET http://localhost:8083/index.php php:7.2-fpm-apline php:{PHP_VERSION}-fpm php:{PHP_VERSION}-fpm-apline
Php läuft im FPM-Modus, Sie können Apline OS wählen
docker run -it -d \ --name php-fpm-alpine \ -p 9000:9000 \ php:7.2-fpm-apline
Empfohlenes Lernen: „PHP Video Tutorial“
Das obige ist der detaillierte Inhalt vonSo stellen Sie eine PHP-Anwendung mit Docker bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Docker und Kubernetes verbessern die Anwendungsbereitstellung und -management -Effizienz durch Containerorchestrierung. 1.Docker erstellt Bilder über DockerFile und führt Container aus, um die Anwendungskonsistenz sicherzustellen. 2. Kubernetes verwaltet Container über POD, Bereitstellung und Dienst, um automatisierte Bereitstellungen und Erweiterungen zu erreichen.

Docker und Kubernetes sind Führungskräfte in Containerisierung und Orchestrierung. Docker konzentriert sich auf das Lebenszyklusmanagement des Containers und eignet sich für kleine Projekte. Kubernetes ist gut in der Containerorchestrierung und für groß angelegte Produktionsumgebungen geeignet. Die Kombination der beiden kann die Entwicklungs- und Bereitstellungseffizienz verbessern.

Docker und Linux sind perfekte Übereinstimmungen, da sie die Entwicklung und Bereitstellung von Anwendungen vereinfachen können. 1) Docker verwendet die Namespaces und CGroups von Linux, um die Isolation und das Ressourcenmanagement von Containern zu implementieren. 2) Docker -Container sind effizienter als virtuelle Maschinen, haben schnellere Startgeschwindigkeiten und die gespiegelte hierarchische Struktur ist leicht zu erstellen und zu verteilen. 3) Unter Linux ist die Installation und Verwendung von Docker mit nur wenigen Befehlen sehr einfach. 4) Durch DockerCompon können Sie Multi-Container-Anwendungen problemlos verwalten und bereitstellen.

Der Unterschied zwischen Docker und Kubernetes besteht darin, dass Docker eine Containerplattform ist, die für kleine Projekte und Entwicklungsumgebungen geeignet ist. Kubernetes ist ein Container -Orchestrierungssystem, das für große Projekte und Produktionsumgebungen geeignet ist. 1.Docker vereinfacht die Anwendungsbereitstellung und eignet sich für kleine Projekte mit begrenzten Ressourcen. 2. Kubernetes bietet Automatisierungs- und Skalierbarkeitsfunktionen, die für große Projekte geeignet sind, die ein effizientes Management erfordern.

Verwenden Sie Docker und Kubernetes, um skalierbare Anwendungen zu erstellen. 1) Erstellen Sie Containerbilder mit DockerFile, 2) Bereitstellung und Service von Kubernetes über den Befehl kubectl, 3) Verwenden Sie Horizontalpodautoscaler, um eine automatische Skalierung zu erreichen, wodurch eine effiziente und skalierbare Anwendungsarchitektur erstellt wird.

Der Hauptunterschied zwischen Docker und Kubernetes besteht darin, dass Docker für die Containerisierung verwendet wird, während Kubernetes zur Containerorchestrierung verwendet wird. 1.Docker bietet eine konsistente Umgebung, um Anwendungen zu entwickeln, zu testen und bereitzustellen und die Isolations- und Ressourcenbeschränkung durch Container zu implementieren. 2. Kubernetes verwaltet Containeranwendungen, bietet automatisierte Funktionen für die Bereitstellung, Erweiterung und Verwaltung und unterstützt Lastausgleich und automatische Skalierung. Die Kombination der beiden kann die Anwendungsbereitstellung und -management -Effizienz verbessern.

Wenn Sie Docker unter Linux installieren und konfigurieren, müssen Sie sicherstellen, dass das System 64-Bit- und Kernel-Version 3.10 und höher ist. Verwenden Sie den Befehl "sudoapt-getupdate" und installieren Sie ihn mit dem Befehl "sudoapt-getupdate" und verifizieren Sie es mit "sudoapt-getupdate" und. Docker verwendet den Namespace- und Kontrollgruppen des Linux -Kernels, um die Isolation und Ressourcenbeschränkung der Container zu erreichen. Das Bild ist eine schreibgeschützte Vorlage, und der Container kann geändert werden. Beispiele für die Nutzung sind das Ausführen eines Nginx -Servers und das Erstellen von Bildern mit benutzerdefinierten Dockerfiles. gemeinsam

Der Grund für die Verwendung von Docker ist, dass es eine effiziente, tragbare und konsistente Umgebung zum Verpacken, Verteilern und Ausführen von Anwendungen bietet. 1) Docker ist eine Containerplattform, mit der Entwickler Anwendungen und ihre Abhängigkeiten in leichte, tragbare Container verpacken können. 2) Es basiert auf Linux -Container -Technologie und gemeinsamem Dateisystem, um einen schnellen Start und einen effizienten Betrieb zu gewährleisten. 3) Docker unterstützt die mehrstufige Konstruktion und optimiert die Bildgröße und die Bereitstellungsgeschwindigkeit. 4) Die Verwendung von Docker kann die Entwicklungs- und Bereitstellungsprozesse vereinfachen, die Effizienz verbessern und die Konsistenz über Umgebungen hinweg sicherstellen.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Dreamweaver CS6
Visuelle Webentwicklungstools

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.
