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 -yCentOS / RHEL / Fedora:
$ sudo dnf install curl -yRaz 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 verziaMal 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-apacheBEH
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 psAko 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:
$ ipV 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.