suchen
HeimBetrieb und InstandhaltungDockerSo stellen Sie eine PHP-Anwendung mit Docker bereit

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.

So stellen Sie eine PHP-Anwendung mit Docker bereit

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([
    &#39;worker_num&#39;  => 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 &#39;s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g&#39; /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!

Stellungnahme
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
Docker und Kubernetes: Die Kraft der ContainerorchestrierungDocker und Kubernetes: Die Kraft der ContainerorchestrierungMay 02, 2025 am 12:06 AM

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 vs. Kubernetes: Schlüsselunterschiede und SynergienDocker vs. Kubernetes: Schlüsselunterschiede und SynergienMay 01, 2025 am 12:09 AM

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: Die perfekte PartnerschaftDocker und Linux: Die perfekte PartnerschaftApr 30, 2025 am 12:02 AM

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.

Docker vs. Kubernetes: Entscheidung, welche sie verwenden sollenDocker vs. Kubernetes: Entscheidung, welche sie verwenden sollenApr 29, 2025 am 12:05 AM

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.

Docker und Kubernetes: Erstellen skalierbarer AnwendungenDocker und Kubernetes: Erstellen skalierbarer AnwendungenApr 28, 2025 am 12:18 AM

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.

Kubernetes und Docker: Eine vergleichende AnalyseKubernetes und Docker: Eine vergleichende AnalyseApr 27, 2025 am 12:05 AM

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.

Ausführen von Docker unter Linux: Installation und KonfigurationAusführen von Docker unter Linux: Installation und KonfigurationApr 26, 2025 am 12:12 AM

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

Warum Docker verwenden? Vorteile und Vorteile erläutertWarum Docker verwenden? Vorteile und Vorteile erläutertApr 25, 2025 am 12:05 AM

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.

See all articles

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

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

DVWA

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

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

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

Dreamweaver CS6

Visuelle Webentwicklungstools

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.