Docker

Einen LAMP-Server mit Docker einrichten

Einen LAMP-Server mit Docker einrichten
In diesem Artikel zeige ich Ihnen, wie Sie mit Docker Compose einen LAMP-Server für die PHP-Webentwicklung erstellen. Also lasst uns anfangen.

Bedarf:

Um diesem Artikel folgen zu können, muss Docker auf Ihrem Computer installiert sein. LinuxHint hat viele Artikel, denen Sie folgen können, um Docker auf Ihrer gewünschten Linux-Distribution zu installieren, wenn Sie es noch nicht installiert haben. Überprüfen Sie also unbedingt LinuxHint.com, falls Sie Probleme bei der Installation von Docker haben.

Docker Compose installieren:

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

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/
docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

HINWEIS: Locken ist möglicherweise nicht auf Ihrer Linux-Distribution installiert. In diesem Fall können Sie curl mit dem folgenden Befehl installieren:

Ubuntu/Debian/Linux Mint:

$ sudo apt install curl -y

CentOS/RHEL/Fedora:

$ sudo dnf install curl -y

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

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

Prüfen Sie nun, ob docker-compose Befehl funktioniert wie folgt:

$ docker-compose-Version

Es sollte die Versionsinformationen wie im Screenshot unten gezeigt drucken.

Docker Compose für das Projekt einrichten:

Erstellen Sie nun ein Projektverzeichnis ~/Docker/Lampe (sagen wir) und a html/ Verzeichnis innerhalb des Projektverzeichnisses zum Speichern der Website-Dateien (i.e. php, html, css, js usw.) wie folgt:

$ mkdir -p ~/docker/lamp/html

Navigieren Sie nun zum Projektverzeichnis ~/Docker/Lampe wie folgt:

$ cd ~/docker/lampe

Ein ... kreieren php.Dockerfile im Projektverzeichnis ~/Docker/Lampe. Dies ist ein Dockerfile, das mysqli- und PDO-php-Erweiterungen im php: 7.4.3-Apache Image von Docker Hub und erstellt daraus ein benutzerdefiniertes Docker-Image.

Der Inhalt der php.Dockerfile ist unten angegeben.

VON php: 7.4.3-Apache

LAUF

docker-php-ext-install mysqli pdo pdo_mysql

Erstellen Sie nun a docker-compose.yaml Datei im Projektverzeichnis ~/Docker/Lampe und geben Sie die folgenden Zeilen in die . ein 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
Umgebung:
MYSQL_ROOT_PASSWORD: geheim
Bände:
- mysql-data:/var/lib/mysql
phpmyadmin:
Bild: phpmyadmin/phpmyadmin:5.0.1
Neustart: immer
Umgebung:
PMA_HOST: mysql-server
PMA_USER: root
PMA_PASSWORD: geheim
Häfen:
- "5000:80"
Bände:
MySQL-Daten:

Das docker-compose.yaml Datei sollte wie folgt aussehen.

Hier habe ich 3 Dienste erstellt Webserver, mysql-server und phpmyadmin.

Webserver service führt ein benutzerdefiniertes Docker-Image aus, wie in definiert php.Dockerfile.

mysql-server Dienst wird die mysql:8.0.19 Image (von DockerHub) in einem Docker-Container.

phpmyadmin Dienst wird die phpmyadmin/phpmyadmin:5.0.1 Image (von DockerHub) in einem anderen Docker-Container.

Im mysql-server Dienst, der MYSQL_ROOT_PASSWORD Umgebungsvariable wird verwendet, um die Wurzel Passwort von MySQL.

Im phpmyadmin Dienst, der PMA_HOST, PMA_USER, PMA_PASSWORD Umgebungsvariablen werden verwendet, um den MySQL-Hostnamen, den Benutzernamen bzw. das Passwort festzulegen, die phpMyAdmin verwendet, um eine Verbindung zum MySQL-Datenbankserver herzustellen, der als mysql-server Bedienung.

Im mysql-server Service, alle Inhalte der /var/lib/mysql Verzeichnis wird dauerhaft im mysql-daten Volumen.'

In dem Webserver Service, der Containerhafen 80 (rechts) ist dem Docker-Host-Port zugeordnet 8080 (links).'

In dem phpmyadmin Service, der Containerhafen 5000 (rechts) ist dem Docker-Host-Port zugeordnet 80 (links).

Erstellen Sie außerdem eine Index.php Datei in der html/ Verzeichnis zum Testen des LAMP-Servers.

Der Inhalt der Index.php Datei in meinem Fall,

$host = "mysql-server";
$user = "root";
$pass = "geheim";
$db = "app1";
Versuchen
$conn = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
echo "Erfolgreich verbunden";
catch(PDOException $e)
echo "Verbindung fehlgeschlagen: " . $e->getMessage();

?>

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

Starten des LAMP-Servers:

Nun, um die zu starten Webserver, mysql-server und phpmyadmin Dienste, führen Sie den folgenden Befehl aus:

$ docker-compose up -d

Alle Dienste sollten im Hintergrund starten.

Führen Sie den folgenden Befehl aus, um zu sehen, wie die Ports zugeordnet sind:

$ 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.

Ermitteln der IP-Adresse des Docker-Hosts:

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

Führen Sie den folgenden Befehl aus, um die IP-Adresse Ihres Docker-Hosts zu ermitteln:

$ ip

In meinem Fall die IP-Adresse meines Docker-Hosts 192.168.20.160. Bei dir wird es anders sein. Stellen Sie also sicher, dass Sie es von nun an durch Ihres ersetzen.

Testen des LAMP-Servers:

Jetzt können Sie über einen Webbrowser auf phpMyAdmin 5 und den Webserver zugreifen.

Um auf phpMyAdmin 5 zuzugreifen, öffnen Sie einen Webbrowser und besuchen Sie http://localhost:5000 von 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 jetzt http://localhost:8080 von Ihrem Docker-Host oder http://192.168.20.160:8080 von jedem anderen Computer in Ihrem Netzwerk, um auf den Webserver zuzugreifen.

Du solltest das sehen Erfolgreich verbunden Botschaft. Das bedeutet, dass PHP funktioniert und der MySQL-Datenbankserver von der Seite aus zugänglich ist Webserver Container. Technisch gesehen ist der LAMP-Server also voll funktionsfähig.

Stoppen des LAMP-Servers:

Um das zu stoppen Webserver, mysql-server und phpmyadmin Dienste, führen Sie den folgenden Befehl aus:

$ docker-compose down

Das Webserver, mysql-server und phpmyadmin Dienste sollten eingestellt werden.

MySQL-Serverdaten bereinigen:

Wenn Sie alle MySQL-Datenbankdaten und -Einstellungen entfernen möchten, müssen Sie die mysql-daten Volumen.

Sie können den tatsächlichen Namen des Volumes mit dem folgenden Befehl ermitteln:

$ Docker-Volume ls

Sie können die Lautstärke entfernen lamp_mysql-data mit folgendem Befehl:

$ docker volume rm lamp_mysql-data

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

Wie Sie sehen, ist das zu entfernende Volumen volume Lampen_mysql-Daten.

So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...
Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...