Richten Sie einen Lampenserver mit Docker ein

Richten Sie einen Lampenserver mit Docker ein
In diesem Artikel werde ich Ihnen zeigen, wie Sie Docker Compose verwenden, um einen Lampenserver für PHP -Webentwicklung zu erstellen. Also lasst uns anfangen.

Anforderungen:

Um diesem Artikel zu folgen, müssen Sie Docker auf Ihrem Computer installieren lassen. LinuxHint verfügt über viele Artikel. Überprüfen Sie also LinuxHint unbedingt.Com für den Fall, dass Sie Probleme haben, Docker zu installieren.

Installieren von Docker Compose:

Sie können Docker Compose Binärdatei sehr einfach mit dem folgenden Befehl herunterladen:

$ sudo curl -l "https: // github.com/docker/komponieren/veröffentlichen/download/1.24.1/
Docker-Compose-$ (uname -s)-$ (uname -m) "-O/usr/local/bin/docker-compose

NOTIZ: Locken Kann nicht auf Ihrer Linux -Verteilung installiert werden. Wenn dies der Fall ist, können Sie Curl mit dem folgenden Befehl installieren:

Ubuntu/Debian/Linux Mint:

$ sudo apt installieren curl -y

CentOS/Rhel/Fedora:

$ sudo dnf installieren curl -y

Einmal Docker-Compose Binärdatei wird heruntergeladen, führen Sie den folgenden Befehl aus:

$ sudo chmod +x/usr/local/bin/docker-compose

Überprüfen Sie nun, ob Docker-Compose Der Befehl funktioniert wie folgt:

$ docker-compose Version

Es sollte die Versionsinformationen wie im unten gezeigten Screenshot drucken.

Einrichten von Docker Compose für das Projekt:

Erstellen Sie nun ein Projektverzeichnis ~/Docker/Lampe (sagen wir sagen) und a html/ Verzeichnis innerhalb des Projektverzeichnisses für die Aufbewahrung der Website -Dateien (i.e. PHP, HTML, CSS, JS usw.) folgendermaßen:

$ mkdir -p ~/docker/lamp/html

Navigieren Sie nun zum Projektverzeichnis ~/Docker/Lampe folgendermaßen:

$ CD ~/Docker/Lampe

Ein ... kreieren Php.Dockerfile im Projektverzeichnis ~/Docker/Lampe. Dies ist eine Dockerfile, die es MySQLI- und PDO -PHP -Erweiterungen in der ermöglicht PHP: 7.4.3-Apache Bild von Docker Hub und erstellt ein benutzerdefiniertes Docker -Bild daraus.

Der Inhalt der Php.Dockerfile wird unten angegeben.

Von PHP: 7.4.3-Apache

LAUFEN

Docker-PHP-EXT-INSTALL MYSQLI PDO PDO_MYSQL

Erstellen Sie jetzt eine Docker-Compose.Yaml Datei im Projektverzeichnis ~/Docker/Lampe und geben Sie die folgenden Zeilen in die Docker-Compose.Yaml Datei.

Version: "3.7 "
Dienstleistungen:
Webserver:
bauen:
Dockerfile: Php.Dockerfile
Kontext: .
Neustart: Immer
Bände:
- "./html/:/var/www/html/"
Häfen:
- "8080: 80"
Mysql-Server:
Bild: Mysql: 8.0.19
Neustart: Immer
Umfeld:
MySQL_ROOT_PASSWORD: Geheimnis
Bände:
- Mysql-data:/var/lib/mysql
phpmyadmin:
Bild: phpmyadmin/phpmyadmin: 5.0.1
Neustart: Immer
Umfeld:
PMA_HOST: Mysql-Server
Pma_user: root
PMA_Password: Geheimnis
Häfen:
- "5000: 80"
Bände:
Mysql-data:

Der Docker-Compose.Yaml Die Datei sollte wie folgt aussehen.

Hier habe ich 3 Dienste erstellt Webserver, Mysql-Server Und phpmyadmin.

Webserver Der Service wird ein maßgeschneidertes Docker-Image ausgeführt Php.Dockerfile.

Mysql-Server Der Service wird die ausführen MySQL: 8.0.19 Bild (von DockerHub) in einem Docker -Container.

phpmyadmin Der Service wird die ausführen phpmyadmin/phpmyadmin: 5.0.1 Bild (aus Dockerhub) in einem anderen Docker -Container.

In Mysql-Server Service, der Mysql_root_password Umgebungsvariable wird verwendet, um die festzulegen Wurzel Passwort von MySQL.

In phpmyadmin Service, der PMA_HOST, PMA_USER, PMA_PASSWORD Umgebungsvariablen werden verwendet, um den MySQL -Hostnamen, den Benutzernamen und den Kennwort festzulegen, mit dem PHPMYADMIN eine Verbindung zum MySQL -Datenbankserver herstellt Mysql-Server Service.

In Mysql-Server Service, der gesamte Inhalt der /var/lib/mysql Verzeichnis wird dauerhaft in der gerettet Mysql-Data Volumen.''

Im Webserver Service, der Containerport 80 (rechts) wird dem Docker -Host -Port zugeordnet 8080 (links).''

Im phpmyadmin Service, der Containerport 5000 (rechts) wird dem Docker -Host -Port zugeordnet 80 (links).

Erstellen Sie auch a Index.Php Datei in der html/ Verzeichnis zum Testen des Lampenservers.

Der Inhalt der Index.Php Datei in meinem Fall,

$ host = "mysql-server";
$ user = "root";
$ pass = "Geheimnis";
$ db = "app1";
versuchen
$ conn = new PDO ("MySQL: host = $ host; dbname = $ db", $ user, $ pass);
$ conn-> setAttribute (pdo :: attr_errmode, pdo :: errmode_exception);
echo "erfolgreich angeschlossen";
catch (pdoException $ e)
echo "Verbindung fehlgeschlagen:" . $ e-> getMessage ();

?>

Schließlich das Projektverzeichnis ~/Docker/Lampe sollte wie folgt schauen:

Starten des Lampenservers:

Nun, um die zu starten Webserver, Mysql-Server Und phpmyadmin Dienste, den folgenden Befehl ausführen:

$ docker -compose up -d

Alle Dienste sollten im Hintergrund beginnen.

Um zu sehen, wie die Ports zugeordnet werden, führen Sie den folgenden Befehl aus:

$ docker-compose ps

Wie Sie sehen können, für die Webserver Service, der Docker Host -Port 8080 wird dem Container -TCP -Port zugeordnet 80.

Für die phpmyadmin Service, der Docker Host -Port 5000 wird dem Container -TCP -Port zugeordnet 80.

Finden der IP -Adresse von Docker Host:

Wenn Sie von anderen Computern in Ihrem Netzwerk auf den Lampenserver zugreifen möchten, müssen Sie die IP -Adresse Ihres Docker -Hosts kennen.

Um die IP -Adresse Ihres Docker -Hosts zu finden, führen Sie den folgenden Befehl aus:

$ ip

In meinem Fall die IP -Adresse meines Docker -Hosts 192.168.20.160. Es wird für Sie anders sein. Stellen Sie also sicher, dass Sie es von nun an durch Ihre ersetzen.

Testen des Lampenservers:

Jetzt können Sie von einem Webbrowser auf PhpMyAdmin 5 und den Webserver zugreifen.

Um auf PhpMyAdmin 5 zuzugreifen, öffnen Sie einen Webbrowser und besuchen Sie http: // localhost: 5000 bei Ihrem Docker -Host oder besuchen Sie http: // 192.168.20.160: 5000 von jedem anderen Computer im Netzwerk.

PhpMyAdmin 5 sollte in Ihrem Webbrowser geladen werden.

Erstellen Sie nun eine App1 MySQL -Datenbank von phpmyadmin.

Besuchen Sie nun http: // localhost: 8080 von Ihrem Docker -Host oder http: // 192.168.20.160: 8080 von einem anderen Computer in Ihrem Netzwerk, um auf den Webserver zuzugreifen.

Sie sollten das sehen Erfolgreich verbunden Nachricht. Es bedeutet, dass der PHP funktioniert und der MySQL -Datenbankserver von der zugänglich ist Webserver Container. Technisch gesehen ist der Lampenserver also voll funktionsfähig.

Stoppen des Lampenservers:

Um die zu stoppen Webserver, Mysql-Server Und phpmyadmin Dienste, den folgenden Befehl ausführen:

$ docker-compose down

Der Webserver, Mysql-Server Und phpmyadmin Dienstleistungen sollten gestoppt werden.

Reinigen Sie MySQL -Serverdaten:

Wenn Sie alle Daten und Datenbankdaten und Einstellungen von MySQL entfernen möchten, müssen Sie die entfernen Mysql-Data Volumen.

Sie können den tatsächlichen Namen des Bandes mit dem folgenden Befehl finden:

$ Docker Volume LS

Sie können das Volumen entfernen LAMP_MYSQL-DATA mit dem folgenden Befehl:

$ Docker Volumen RM LAMP_MYSQL-DATA

So richten Sie einen Lampenserver mit Docker ein. Danke, dass du diesen Artikel gelesen hast.

Wie Sie sehen können, ist das zu entfernene Volumen LAMP_MYSQL-DATA.