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 -yCentOS / RHEL / Fedora:
$ sudo dnf namestite curl -yEnkrat 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-composeNatisniti 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-apacheTEK
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 psKot 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:
$ ipV 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.