Zahtjevi:
Da biste pratili ovaj članak, na računalu morate imati instaliran Docker. LinuxHint ima puno članaka koje možete pratiti kako biste instalirali Docker na željenu Linux distribuciju ako ga već niste instalirali. Dakle, svakako provjerite LinuxHint.com u slučaju da imate problema s instaliranjem Dockera.
Instaliranje Dockera Compose:
Binarnu datoteku Docker Compose možete preuzeti vrlo jednostavno pomoću sljedeće naredbe:
$ 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
BILJEŠKA: kovrča možda neće biti instaliran na vašoj Linux distribuciji. Ako je to slučaj, možete instalirati curl pomoću sljedeće naredbe:
Kovnica Ubuntu / Debian / Linux:
$ sudo apt install curl -yCentOS / RHEL / Fedora:
$ sudo dnf instaliraj curl -yJednom docker-compose binarna datoteka se preuzima, pokrenite sljedeću naredbu:
$ sudo chmod + x / usr / local / bin / docker-compose
Sada provjeri da li docker-compose naredba radi na sljedeći način:
$ docker-compose verzijaTrebao bi ispisati podatke o verziji kao što je prikazano na snimci zaslona u nastavku.
Postavljanje Docker Compose za projekt:
Sada izradite direktorij projekta ~ / docker / lampa (recimo) i a html / direktorij unutar direktorija projekta za čuvanje datoteka web mjesta (tj.e. php, html, css, js itd.) kako slijedi:
$ mkdir -p ~ / docker / lamp / html
Sada se pomaknite do direktorija projekta ~ / docker / lampa kako slijedi:
$ cd ~ / docker / lampica
Stvoriti php.Dockerfile u direktoriju projekta ~ / docker / lampa. Ovo je Dockerfile koji omogućuje mysqli i PDO php proširenja u php: 7.4.3-apache slika iz Docker Hub-a i od nje gradi prilagođenu Docker-ovu sliku.
Sadržaj php.Dockerfile je dan u nastavku.
OD php: 7.4.3-apacheTRČANJE
docker-php-ext-install mysqli pdo pdo_mysql
Sada stvorite a docker-compose.yaml datoteku u direktoriju projekta ~ / docker / lampa i unesite sljedeće retke u docker-compose.yaml datoteka.
inačica: "3.7 "usluge:
web-poslužitelj:
izgraditi:
dockerfile: php.Dockerfile
kontekst: .
ponovno pokretanje: uvijek
svezaka:
- "./ html /: / var / www / html / "
luke:
- "8080: 80"
mysql-poslužitelj:
slika: mysql: 8.0.19
ponovno pokretanje: uvijek
okoliš:
MYSQL_ROOT_PASSWORD: tajno
svezaka:
- mysql-podaci: / var / lib / mysql
phpmyadmin:
slika: phpmyadmin / phpmyadmin: 5.0.1
ponovno pokretanje: uvijek
okoliš:
PMA_HOST: mysql-poslužitelj
PMA_USER: korijen
PMA_PASSWORD: tajno
luke:
- "5000: 80"
svezaka:
mysql-podaci:
The docker-compose.yaml datoteka bi trebala izgledati kako slijedi.
Ovdje sam stvorio 3 usluge web-poslužitelj, mysql-poslužitelj i phpmyadmin.
web-poslužitelj usluga će pokrenuti prilagođenu Docker sliku kako je definirano u php.Dockerfile.
mysql-poslužitelj usluga će pokrenuti mysql: 8.0.19 slika (iz DockerHub) u Docker spremniku.
phpmyadmin usluga će pokrenuti phpmyadmin / phpmyadmin: 5.0.1 slika (iz DockerHub-a) u drugom spremniku Dockera.
U mysql-poslužitelj usluga, MYSQL_ROOT_PASSWORD varijabla okoline koristi se za postavljanje korijen lozinka za MySQL.
U phpmyadmin usluga, PMA_HOST, PMA_USER, PMA_PASSWORD varijable okoline koriste se za postavljanje MySQL imena hosta, korisničkog imena i lozinke koje će phpMyAdmin koristiti za povezivanje s MySQL poslužiteljem baze podataka koji radi kao mysql-poslužitelj servis.
U mysql-poslužitelj usluga, sav sadržaj / var / lib / mysql direktorij će se trajno spremiti u mysql-podaci volumen.'
U web-poslužitelj usluga, luka kontejnera 80 (zdesna) preslikava se na priključak Dockera 8080 (lijevo).'
U phpmyadmin usluga, luka kontejnera 5000 (zdesna) preslikava se na priključak Dockera 80 (lijevo).
Također stvorite a indeks.php datoteku u html / direktorij za testiranje LAMP poslužitelja.
Sadržaj indeks.php spis u mom slučaju,
$ host = "mysql-poslužitelj";$ user = "root";
$ pass = "tajno";
$ db = "app1";
probaj
$ conn = novi PDO ("mysql: host = $ host; dbname = $ db", $ user, $ pass);
$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
odjek "Uspješno povezan";
catch (PDOException $ e)
echo "Veza nije uspjela:" . $ e-> getMessage ();
?>
Konačno, direktorij projekta ~ / docker / lampa treba izgledati kako slijedi:
Pokretanje LAMP poslužitelja:
Sada, za početak web-poslužitelj, mysql-poslužitelj i phpmyadmin usluge, pokrenite sljedeću naredbu:
$ docker-compose up -d
Sve usluge trebaju započeti u pozadini.
Da biste vidjeli kako se mapiraju luke, pokrenite sljedeću naredbu:
$ docker-komponiraj psKao što vidite, za web-poslužitelj usluga, priključak Dockera 8080 preslikava se na TCP port spremnika 80.
Za phpmyadmin usluga, priključak Dockera 5000 preslikava se na TCP port spremnika 80.
Pronalaženje IP adrese domaćina Dockera:
Ako želite pristupiti LAMP poslužitelju s drugih računala u mreži, morate znati IP adresu vašeg Dockera hosta.
Da biste pronašli IP adresu vašeg Dockera, pokrenite sljedeću naredbu:
$ ipU mom slučaju, IP adresa mog domaćina Dockera 192.168.20.160. Za vas će biti drugačije. Pazite da ga od sada zamijenite svojim.
Testiranje LAMP poslužitelja:
Sada možete pristupiti phpMyAdmin 5 i web poslužitelju iz web preglednika.
Da biste pristupili phpMyAdmin 5, otvorite web preglednik i posjetite http: // localhost: 5000 s vašeg domaćina Dockera ili posjetite http: // 192.168.20.160: 5000 s bilo kojeg drugog računala u mreži.
phpMyAdmin 5 trebao bi se učitati u vašem web pregledniku.
Sada stvorite app1 MySQL baza podataka iz phpMyAdmina.
Sada posjetite http: // localhost: 8080 s vašeg domaćina Dockera ili http: // 192.168.20.160: 8080 s bilo kojeg drugog računala u vašoj mreži za pristup web poslužitelju.
Trebali biste vidjeti Uspješno povezano poruka. Znači, PHP radi, a MySQL poslužitelju baze podataka dostupan je s web-poslužitelj kontejner. Dakle, tehnički je LAMP poslužitelj u potpunosti funkcionalan.
Zaustavljanje LAMP poslužitelja:
Za zaustavljanje web-poslužitelj, mysql-poslužitelj i phpmyadmin usluge, pokrenite sljedeću naredbu:
$ docker-sastavi dolje
The web-poslužitelj, mysql-poslužitelj i phpmyadmin usluge treba zaustaviti.
Čišćenje podataka MySQL poslužitelja:
Ako želite ukloniti sve podatke i postavke MySQL baze podataka, morate ukloniti mysql-podaci volumen.
Stvarno ime volumena možete pronaći pomoću sljedeće naredbe:
$ docker volumen ls
Možete ukloniti glasnoću lamp_mysql-podaci sa sljedećom naredbom:
$ docker volumen rm lamp_mysql-data
Dakle, tako ste postavili LAMP poslužitelj s Dockerom. Hvala što ste pročitali ovaj članak.
Kao što vidite, glasnoća za uklanjanje je lamp_mysql-podaci.