Docker

Nastavte server LAMP pomocou Dockeru

Nastavte server LAMP pomocou Dockeru
V tomto článku vám ukážem, ako používať program Docker Compose na vytvorenie servera LAMP pre vývoj webových aplikácií PHP. Takže poďme na to.

Požiadavky:

Ak chcete postupovať podľa tohto článku, musíte mať vo svojom počítači nainštalovaný program Docker. LinuxHint obsahuje veľa článkov, podľa ktorých si môžete nainštalovať Docker na požadovanú distribúciu Linuxu, ak ho ešte nemáte nainštalovaný. Nezabudnite teda skontrolovať LinuxHint.com v prípade, že máte problémy s inštaláciou Dockeru.

Inštalácia Docker Compose:

Binárny súbor Docker Compose si môžete stiahnuť veľmi ľahko pomocou nasledujúceho príkazu:

$ 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

POZNÁMKA: zvlnenie nemusí byť vo vašej distribúcii Linuxu nainštalovaný. V takom prípade môžete curl nainštalovať pomocou nasledujúceho príkazu:

Ubuntu / Debian / Linux Mint:

$ sudo apt nainštalovať curl -y

CentOS / RHEL / Fedora:

$ sudo dnf install curl -y

Raz ukotviť-zložiť binárny súbor sa stiahne, spustite nasledujúci príkaz:

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

Teraz skontrolujte, či ukotviť-zložiť príkaz funguje nasledovne:

$ docker-compose verzia

Mal by vytlačiť informácie o verzii, ako je znázornené na snímke obrazovky nižšie.

Nastavenie Docker Compose pre projekt:

Teraz vytvorte adresár projektu ~ / docker / lampa (povedzme) a a html / adresár v adresári projektu na uchovávanie súborov webových stránok (i.e. php, html, css, js atď.) nasledovne:

$ mkdir -p ~ / docker / lampa / html

Teraz prejdite do adresára projektu ~ / docker / lampa nasledovne:

$ cd ~ / docker / lampa

Vytvor php.Dockerfile v adresári projektu ~ / docker / lampa. Toto je Dockerfile, ktorý umožňuje php rozšírenia mysqli a PDO v php: 7.4.3-apache obrázok z Docker Hubu a vytvorí z neho vlastný obrázok Dockeru.

Obsah php.Dockerfile je uvedený nižšie.

Z php: 7.4.3-apache

BEH

docker-php-ext-install mysqli pdo pdo_mysql

Teraz vytvorte ukotviť-zložiť.yaml súbor v adresári projektu ~ / docker / lampa a zadajte nasledujúce riadky do ukotviť-zložiť.yaml spis.

verzia: „3.7 "
služby:
webový server:
stavať:
dockerfile: php.Dockerfile
kontext: .
reštart: vždy
objemy:
- „./ html /: / var / www / html / "
prístavy:
- „8080: 80“
mysql-server:
obrázok: mysql: 8.0.19
reštart: vždy
prostredie:
MYSQL_ROOT_PASSWORD: tajný
objemy:
- mysql-data: / var / lib / mysql
phpmyadmin:
obrázok: phpmyadmin / phpmyadmin: 5.0.1
reštart: vždy
prostredie:
PMA_HOST: mysql-server
PMA_USER: root
PMA_PASSWORD: tajné
prístavy:
- „5 000: 80“
objemy:
mysql-data:

The ukotviť-zložiť.yaml súbor by mal vyzerať nasledovne.

Tu som vytvoril 3 služby webový server, mysql-server a phpmyadmin.

webový server služba spustí prispôsobený obraz Dockeru, ako je definované v php.Dockerfile.

mysql-server služba spustí mysql: 8.0.19 obrázok (z DockerHub) v kontajneri Docker.

phpmyadmin služba spustí phpmyadmin / phpmyadmin: 5.0.1 obrázok (z DockerHub) v inom kontajneri Docker.

V mysql-server služba, MYSQL_ROOT_PASSWORD premenná prostredia sa používa na nastavenie koreň heslo MySQL.

V phpmyadmin služba, PMA_HOST, PMA_USER, PMA_PASSWORD premenné prostredia sa používajú na nastavenie hostiteľského mena, užívateľského mena a hesla MySQL, ktoré phpMyAdmin použije na pripojenie k databázovému serveru MySQL bežiacemu ako mysql-server služby.

V mysql-server všetok obsah služby / var / lib / mysql adresár bude trvale uložený v priečinku mysql-data objem.„

V webový server služba, kontajnerový prístav 80 (vpravo) je namapovaný na port hostiteľa Docker 8080 (vľavo).„

V phpmyadmin služba, kontajnerový prístav 5 000 (vpravo) je namapovaný na port hostiteľa Docker 80 (vľavo).

Vytvorte tiež a index.php súbor v html / adresár na testovanie servera LAMP.

Obsah index.php spis v mojom prípade,

$ host = "mysql-server";
$ user = "root";
$ pass = "tajomstvo";
$ db = "app1";
skúsiť
$ conn = nový CHOP ("mysql: host = $ hostiteľ; dbname = $ db", $ užívateľ, $ pass);
$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
 
echo "Úspešne pripojené";
úlovok (PDOException $ e)
echo "Pripojenie zlyhalo:" . $ e-> getMessage ();

?>

Nakoniec adresár projektu ~ / docker / lampa by malo vyzerať nasledovne:

Spustenie servera LAMP:

Teraz začnite webový server, mysql-server a phpmyadmin služby, spustite nasledujúci príkaz:

$ docker-compose up -d

Všetky služby by mali začínať na pozadí.

Mapovanie portov zobrazíte spustením nasledujúceho príkazu:

$ docker-compose ps

Ako vidíte, pre webový server hostiteľský port Dockeru 8080 je namapovaný na port TCP kontajnera 80.

Pre phpmyadmin hostiteľský port Dockeru 5 000 je namapovaný na port TCP kontajnera 80.

Zistenie IP adresy hostiteľa Docker:

Ak chcete získať prístup k serveru LAMP z iných počítačov vo svojej sieti, musíte poznať adresu IP hostiteľa Docker.

Ak chcete zistiť adresu IP hostiteľa Dockeru, spustite nasledujúci príkaz:

$ ip

V mojom prípade adresa IP môjho hostiteľa Docker 192.168.20.160. U teba to bude iné. Odteraz ho teda vymeňte za svoj.

Testovanie servera LAMP:

Teraz máte prístup k phpMyAdmin 5 a webovému serveru z webového prehľadávača.

Pre prístup k phpMyAdmin 5 otvorte webový prehliadač a navštívte http: // localhost: 5000 od svojho hostiteľa Dockeru alebo navštívte http: // 192.168.20.160: 5 000 z ľubovoľného iného počítača v sieti.

phpMyAdmin 5 by sa mal načítať vo vašom webovom prehliadači.

Teraz vytvorte app1 MySQL databáza z phpMyAdmin.

Teraz navštívte http: // localhost: 8080 z vášho hostiteľa Dockeru alebo http: // 192.168.20.160: 8080 z ktoréhokoľvek iného počítača v sieti na prístup k webovému serveru.

Mali by ste vidieť Pripojené úspešne správa. To znamená, že PHP funguje a databázový server MySQL je prístupný z webový server kontajner. Technicky je teda server LAMP plne funkčný.

Zastavenie servera LAMP:

Ak chcete zastaviť webový server, mysql-server a phpmyadmin služby, spustite nasledujúci príkaz:

$ docker-skomponovať

The webový server, mysql-server a phpmyadmin služby by mali byť zastavené.

Čistenie údajov servera MySQL:

Ak chcete odstrániť všetky dáta a nastavenia MySQL databázy, musíte odstrániť mysql-data objem.

Skutočný názov zväzku nájdete pomocou nasledujúceho príkazu:

$ docker volume ls

Môžete odstrániť hlasitosť lampa_mysql-data nasledujúcim príkazom:

$ docker volume rm lamp_mysql-data

Takto ste nastavili server LAMP pomocou Dockeru. Ďakujeme, že ste si prečítali tento článok.

Ako vidíte, objem na odstránenie je lamp_mysql-data.

Trackpad a ukazovateľ myši AppyMouse na obrazovke pre tablety so systémom Windows
Používateľom tabletov často chýba ukazovateľ myši, najmä keď notebooky bežne používajú. Dotykové smartphony a tablety majú veľa výhod a jediným obmedz...
Stredné tlačidlo myši nefunguje v systéme Windows 10
The stredné tlačidlo myši pomáha vám prechádzať dlhé webové stránky a obrazovky s množstvom údajov. Ak sa to zastaví, budete nakoniec používať klávesn...
Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...