Imposta un server di lampade con docker

Imposta un server di lampade con docker
In questo articolo, ti mostrerò come utilizzare Docker Compose per creare un server di lampade per lo sviluppo Web PHP. Quindi iniziamo.

Requisiti:

Per seguire questo articolo, è necessario installare Docker sul tuo computer. Linuxhint ha molti articoli che puoi seguire per installare Docker sulla distribuzione di Linux desiderata se non lo hai già installato. Quindi, assicurati di controllare Linuxhint.com nel caso in cui tu abbia problemi a installare Docker.

Installazione di Docker Compositura:

È possibile scaricare il file binario di Docker Composition molto facilmente con il seguente comando:

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

NOTA: arricciare potrebbe non essere installato sulla distribuzione di Linux. In questo caso, è possibile installare Curl con il seguente comando:

Ubuntu/Debian/Linux Mint:

$ sudo APT Installa Curl -y

CentOS/RHEL/Fedora:

$ sudo dnf installa curl -y

Una volta docker-compose Il file binario viene scaricato, eseguire il seguente comando:

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

Ora, controlla se docker-compose Il comando funziona come segue:

$ Docker-compose versione

Dovrebbe stampare le informazioni sulla versione come mostrato nello screenshot seguente.

Impostazione di Docker Componomy per il progetto:

Ora, crea una directory di progetto ~/docker/lampada (diciamo) e a html/ directory all'interno della directory del progetto per mantenere i file del sito Web (i.e. PHP, HTML, CSS, JS ecc.) come segue:

$ mkdir -p ~/docker/lampada/html

Ora, vai alla directory del progetto ~/docker/lampada come segue:

$ cd ~/docker/lampada

Creare un PHP.Dockerfile Nella directory del progetto ~/docker/lampada. Questo è un fikerfile che consente alle estensioni MySQLI e PDO PHP nel PHP: 7.4.3-apache Immagine da Docker Hub e crea un'immagine Docker personalizzata da essa.

Il contenuto del PHP.Dockerfile è riportato di seguito.

Da php: 7.4.3-apache

CORRERE

Docker-Php-Ext-Install Mysqli PDO PDO_MYSQL

Ora crea un file docker-compose.Yaml File nella directory del progetto ~/docker/lampada e digitare le seguenti righe in docker-compose.Yaml file.

Versione: "3.7 "
Servizi:
server web:
costruire:
Dockerfile: PHP.Dockerfile
contesto: .
Riavvia: sempre
Volumi:
- "./html/:/var/www/html/"
Porte:
- "8080: 80"
mysql-server:
Immagine: Mysql: 8.0.19
Riavvia: sempre
ambiente:
Mysql_root_password: segreto
Volumi:
- mysql-data:/var/lib/mysql
phpmyadmin:
Immagine: PhpMyAdmin/PhpmyAdmin: 5.0.1
Riavvia: sempre
ambiente:
PMA_HOST: Mysql-Server
Pma_user: root
PMA_Password: segreto
Porte:
- "5000: 80"
Volumi:
mysql-data:

IL docker-compose.Yaml Il file dovrebbe apparire come segue.

Qui, ho creato 3 servizi server web, mysql-server E phpmyadmin.

server web Il servizio eseguirà un'immagine Docker personalizzata come definita in PHP.Dockerfile.

mysql-server Il servizio eseguirà il Mysql: 8.0.19 Immagine (da Dockerhub) in un contenitore Docker.

phpmyadmin Il servizio eseguirà il phpmyadmin/phpmyadmin: 5.0.1 Immagine (da Dockerhub) in un altro contenitore Docker.

In mysql-server servizio, il Mysql_root_password La variabile di ambiente viene utilizzata per impostare il radice Password di Mysql.

In phpmyadmin servizio, il Pma_host, pma_user, pma_password Le variabili di ambiente vengono utilizzate per impostare rispettivamente il nome host, il nome utente e la password MySQL che PhpMyAdmin utilizzerà per connettersi al server di database MySQL in esecuzione come mysql-server servizio.

In mysql-server servizio, tutti i contenuti del /var/lib/mysql La directory verrà salvata in modo permanente nel mysql-data volume.'

Nel server web Servizio, la porta del contenitore 80 (a destra) è mappato alla porta host Docker 8080 (Sinistra).'

Nel phpmyadmin Servizio, la porta del contenitore 5000 (a destra) è mappato alla porta host Docker 80 (Sinistra).

Inoltre, crea un file indice.PHP file in html/ Directory per testare il server lampade.

Il contenuto del indice.PHP file nel mio caso,

$ host = "mysql-server";
$ user = "root";
$ pass = "segreto";
$ db = "app1";
Tentativo
$ Conn = new PDO ("MySQL: host = $ host; dbname = $ db", $ utente, $ pass);
$ conn-> setAttribute (pdo :: attr_errmode, pdo :: errmode_exception);
Echo "connesso con successo";
catch (pDoException $ e)
Echo "Connection non riuscita:" . $ e-> getMessage ();

?>

Infine, la directory del progetto ~/docker/lampada dovrebbe sembrare come segue:

Avvio del server Lamp:

Ora, per iniziare il server web, mysql-server E phpmyadmin Servizi, esegui il seguente comando:

$ Docker -Opse Up -D

Tutti i servizi dovrebbero iniziare in background.

Per vedere come sono mappate le porte, eseguire il seguente comando:

$ docker-compose ps

Come puoi vedere, per il server web Servizio, la porta host Docker 8080 è mappato alla porta TCP del contenitore 80.

Per il phpmyadmin Servizio, la porta host Docker 5000 è mappato alla porta TCP del contenitore 80.

Trovare l'indirizzo IP dell'host Docker:

Se si desidera accedere al server Lamp da altri computer sulla tua rete, devi conoscere l'indirizzo IP del tuo host Docker.

Per trovare l'indirizzo IP dell'host Docker, eseguire il seguente comando:

$ ip

Nel mio caso, l'indirizzo IP del mio host Docker 192.168.20.160. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo da ora in poi.

Testare il server lampade:

Ora puoi accedere a PhpMyAdmin 5 e dal server Web da un browser Web.

Per accedere a PhpMyAdmin 5, apri un browser Web e visita http: // localhost: 5000 dal tuo host Docker o visita http: // 192.168.20.160: 5000 da qualsiasi altro computer sulla rete.

PhpMyAdmin 5 dovrebbe caricare nel browser web.

Ora, crea un app1 Database mysql da phpmyadmin.

Ora visita http: // localhost: 8080 dal tuo host Docker o http: // 192.168.20.160: 8080 da qualsiasi altro computer sulla rete per accedere al server Web.

Dovresti vedere il Connesso con successo Messaggio. Significa che il PHP funziona e il server di database MySQL è accessibile dal server web contenitore. Quindi, tecnicamente, il server lampade è completamente funzionale.

Arrestare il server lampade:

Per fermare il server web, mysql-server E phpmyadmin Servizi, esegui il seguente comando:

$ Docker-compone

IL server web, mysql-server E phpmyadmin I servizi dovrebbero essere fermati.

Pulizia dei dati del server MySQL:

Se si desidera rimuovere tutti i dati e le impostazioni del database MySQL, è necessario rimuovere il mysql-data volume.

Puoi trovare il nome effettivo del volume con il seguente comando:

$ Docker Volume LS

Puoi rimuovere il volume LAMP_MYSQL-DATA con il seguente comando:

$ Docker Volume RM LAMP_MYSQL-DATA

Quindi, è così che hai impostato un lampione con Docker. Grazie per aver letto questo articolo.

Come puoi vedere, il volume da rimuovere è LAMP_MYSQL-DATA.