Docker

Z Dockerjem nastavite strežnik LAMP

Z Dockerjem nastavite strežnik LAMP
V tem članku vam bom pokazal, kako z Docker Compose ustvariti strežnik LAMP za spletni razvoj PHP. Torej, začnimo.

Zahteve:

Če želite slediti temu članku, morate imeti v računalniku nameščen Docker. LinuxHint ima veliko člankov, po katerih lahko namestite Docker na želeno distribucijo Linuxa, če ga še nimate nameščenega. Torej, ne pozabite preveriti LinuxHint.com, če imate težave z namestitvijo Dockerja.

Namestitev Docker Compose:

Binarno datoteko Docker Compose lahko zelo enostavno prenesete z naslednjim ukazom:

$ 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

OPOMBA: curl morda ni nameščen na vaši distribuciji Linuxa. V tem primeru lahko curl namestite z naslednjim ukazom:

Kovnica Ubuntu / Debian / Linux:

$ sudo apt namestite curl -y

CentOS / RHEL / Fedora:

$ sudo dnf namestite curl -y

Enkrat docker-compose binarna datoteka se prenese, zaženite naslednji ukaz:

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

Zdaj pa preverite, ali docker-compose ukaz deluje na naslednji način:

Različica $ docker-compose

Natisniti mora informacije o različici, kot je prikazano na spodnjem posnetku zaslona.

Nastavitev Docker Compose za projekt:

Zdaj ustvarite imenik projekta ~ / docker / svetilka (recimo) in a html / imenik znotraj imenika projekta za shranjevanje datotek spletnega mesta (tj.e. php, html, css, js itd.) kot sledi:

$ mkdir -p ~ / docker / lamp / html

Zdaj se pomaknite do imenika projekta ~ / docker / svetilka kot sledi:

$ cd ~ / docker / svetilka

Ustvariti php.Dockerfile v imeniku projekta ~ / docker / svetilka. To je Dockerfile, ki omogoča razširitve php mysqli in PDO v php: 7.4.3-apache sliko iz Docker Hub-a in iz nje izdela sliko Docker-ja po meri.

Vsebina php.Dockerfile je podano spodaj.

OD php: 7.4.3-apache

TEK

docker-php-ext-install mysqli pdo pdo_mysql

Zdaj ustvarite docker-compose.yaml datoteko v imeniku projekta ~ / docker / svetilka in vnesite naslednje vrstice v docker-compose.yaml mapa.

različica: "3.7 "
storitve:
spletni strežnik:
graditi:
dockerfile: php.Dockerfile
kontekst: .
ponovni zagon: vedno
prostornine:
- "./ html /: / var / www / html / "
vrata:
- "8080: 80"
mysql-strežnik:
slika: mysql: 8.0.19
ponovni zagon: vedno
okolje:
MYSQL_ROOT_PASSWORD: skrivnost
prostornine:
- mysql-data: / var / lib / mysql
phpmyadmin:
slika: phpmyadmin / phpmyadmin: 5.0.1
ponovni zagon: vedno
okolje:
PMA_HOST: strežnik mysql
PMA_USER: root
PMA_PASSWORD: skrivnost
vrata:
- "5000: 80"
prostornine:
mysql-podatki:

The docker-compose.yaml datoteka naj izgleda takole.

Tukaj sem ustvaril 3 storitve spletni strežnik, mysql-strežnik in phpmyadmin.

spletni strežnik storitev bo zagnala prilagojeno Dockerjevo sliko, kot je definirana v php.Dockerfile.

mysql-strežnik storitev bo zagnala mysql: 8.0.19 image (iz DockerHub) v vsebniku Docker.

phpmyadmin storitev bo zagnala phpmyadmin / phpmyadmin: 5.0.1 image (iz DockerHub) v drugem vsebniku Docker.

V mysql-strežnik storitev, MYSQL_ROOT_PASSWORD spremenljivka okolja se uporablja za nastavitev koren geslo za MySQL.

V phpmyadmin storitev, PMA_HOST, PMA_USER, PMA_PASSWORD spremenljivke okolja se uporabljajo za nastavitev imena gostitelja MySQL, uporabniškega imena in gesla, ki jih bo phpMyAdmin uporabil za povezavo s strežnikom baz podatkov MySQL, ki deluje kot mysql-strežnik storitev.

V mysql-strežnik storitev, vsa vsebina / var / lib / mysql imenik bo trajno shranjen v mysql-podatki glasnost."

V spletni strežnik storitev, pristanišče zabojnika 80 (desno) se preslika na vrata gostitelja Dockerja 8080 (levo)."

V phpmyadmin storitev, pristanišče zabojnika 5000 (desno) se preslika na vrata gostitelja Dockerja 80 (levo).

Ustvarite tudi indeks.php v datoteki html / imenik za testiranje strežnika LAMP.

Vsebina indeks.php v mojem primeru,

$ host = "mysql-server";
$ uporabnik = "root";
$ pass = "skrivnost";
$ db = "app1";
poskusite
$ conn = nov PDO ("mysql: host = $ host; dbname = $ db", $ user, $ pass);
$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
 
echo "Povezava uspešno";
ulov (PDOException $ e)
echo "Povezava ni uspela:" . $ e-> getMessage ();

?>

Na koncu še imenik projekta ~ / docker / svetilka mora izgledati tako:

Zagon strežnika LAMP:

Zdaj pa za začetek spletni strežnik, mysql-strežnik in phpmyadmin storitve, zaženite naslednji ukaz:

$ docker-compose up -d

Vse storitve se morajo začeti v ozadju.

Če si želite ogledati preslikavo vrat, zaženite naslednji ukaz:

$ docker-compose ps

Kot lahko vidite, za spletni strežnik gostiteljska vrata Docker 8080 se preslika v vrata TCP vsebnika 80.

Za phpmyadmin gostiteljska vrata Docker 5000 se preslika v vrata TCP vsebnika 80.

Iskanje naslova IP gostitelja Docker:

Če želite do strežnika LAMP dostopati iz drugih računalnikov v vašem omrežju, morate poznati naslov IP vašega gostitelja Docker.

Če želite najti naslov IP gostitelja Docker, zaženite naslednji ukaz:

$ ip

V mojem primeru naslov IP mojega gostitelja Docker 192.168.20.160. Za vas bo drugače. Zato ga odslej zamenjajte s svojim.

Testiranje strežnika LAMP:

Zdaj lahko do spletnega strežnika dostopate do phpMyAdmin 5 in spletnega strežnika.

Če želite dostopati do phpMyAdmin 5, odprite spletni brskalnik in obiščite http: // localhost: 5000 s svojega gostitelja Dockerja ali obiščite http: // 192.168.20.160: 5000 iz katerega koli drugega računalnika v omrežju.

phpMyAdmin 5 se mora naložiti v vaš spletni brskalnik.

Zdaj ustvarite app1 Baza podatkov MySQL iz phpMyAdmin.

Zdaj obiščite http: // localhost: 8080 pri svojem gostitelju Docker ali http: // 192.168.20.160: 8080 iz katerega koli drugega računalnika v omrežju za dostop do spletnega strežnika.

Morali bi videti Povezava uspešno sporočilo. To pomeni, da PHP deluje in strežnik baz podatkov MySQL je dostopen z spletni strežnik posoda. Torej, tehnično je strežnik LAMP popolnoma funkcionalen.

Zaustavitev strežnika LAMP:

Če želite ustaviti spletni strežnik, mysql-strežnik in phpmyadmin storitve, zaženite naslednji ukaz:

$ docker-compose dol

The spletni strežnik, mysql-strežnik in phpmyadmin storitve je treba ustaviti.

Čiščenje podatkov strežnika MySQL:

Če želite odstraniti vse podatke in nastavitve zbirke podatkov MySQL, morate odstraniti mysql-podatki glasnost.

Dejansko ime zvezka najdete z naslednjim ukazom:

$ docker obseg ls

Glasnost lahko odstranite svetilka_mysql-podatki z naslednjim ukazom:

$ docker glasnost rm lamp_mysql-data

Torej, tako nastavite strežnik LAMP z Dockerjem. Hvala, ker ste prebrali ta članek.

Kot lahko vidite, glasnost, ki jo želite odstraniti, je svetilka_mysql-podatki.

Microsoft Sculpt Touch Wireless Mouse Review
Pred kratkim sem prebral o Microsoftov kiparski dotik brezžično miško in se odločil za nakup. Potem ko sem ga nekaj časa uporabljal, sem se odločil, d...
Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...