Skonfiguruj serwer lamp z Docker

Skonfiguruj serwer lamp z Docker
W tym artykule pokażę Ci, jak używać Docker Compose do utworzenia serwera lampy dla PHP Web Development. Więc zacznijmy.

Wymagania:

Aby śledzić ten artykuł, musisz zainstalować Docker na swoim komputerze. Linuxhint ma wiele artykułów, które możesz śledzić, aby zainstalować Docker w żądanym dystrybucji Linux, jeśli jeszcze go nie zainstalował. Pamiętaj więc, aby sprawdzić Linuxhint.com na wypadek problemu z instalacją Dockera.

Instalowanie Docker Compose:

Możesz bardzo łatwo pobrać plik binarny Docker za pomocą następującego polecenia:

$ sudo curl -l "https: // github.com/docker/compose/wydania/pobieranie/1.24.1/
Docker-Compose-$ (uname -s)-$ (uname -m) "-o/usr/local/bin/compose

NOTATKA: kędzior nie może być zainstalowane w dystrybucji Linux. W takim przypadku możesz zainstalować Curl z następującym poleceniem:

Ubuntu/Debian/Linux Mint:

$ sudo apt instal curl -y

Centos/Rhel/Fedora:

$ sudo dnf instaluj curl -y

Raz Kompozycja dokera Plik binarny jest pobierany, uruchom następujące polecenie:

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

Teraz sprawdź, czy Kompozycja dokera Komenda działa w następujący sposób:

Wersja $ Docker-Compose

Powinien wydrukować informacje o wersji, jak pokazano na zrzucie ekranu poniżej.

Konfigurowanie Dockera komponuj dla projektu:

Teraz utwórz katalog projektu ~/Docker/lampa (powiedzmy) i html/ katalog w katalogu projektu w celu prowadzenia plików witryny (i.mi. PHP, HTML, CSS, JS itp.) Jak następuje:

$ mkdir -p ~/docker/lamp/html

Teraz przejdź do katalogu projektu ~/Docker/lampa następująco:

$ CD ~/Docker/Lampa

Stwórz php.Dockerfile W katalogu projektu ~/Docker/lampa. To jest plik dokujący, który umożliwia rozszerzenia MySQLI i PDO PHP w PHP: 7.4.3-Apache Obraz z Docker Hub i tworzy z niego niestandardowy obraz dokera.

Zawartość php.Dockerfile podano poniżej.

Od PHP: 7.4.3-Apache

URUCHOMIĆ

Docker-Php-Ext-install mysqli pdo pdo_mysql

Teraz stwórz Kompozycja dokera.Yaml Plik w katalogu projektu ~/Docker/lampa i wpisz w następujących wierszach w Kompozycja dokera.Yaml plik.

Wersja: "3.7 "
Usługi:
serwer internetowy:
zbudować:
Dockerfile: PHP.Dockerfile
kontekst: .
Uruchom ponownie: Zawsze
wolumeny:
- "./html/:/var/www/html/"
Porty:
- „8080: 80”
mysql-server:
Zdjęcie: Mysql: 8.0.19
Uruchom ponownie: Zawsze
środowisko:
Mysql_root_password: Secret
wolumeny:
- mysql-data:/var/lib/mysql
phpMyAdmin:
Zdjęcie: phpmyadmin/phpMyAdmin: 5.0.1
Uruchom ponownie: Zawsze
środowisko:
PMA_HOST: MySQL-Server
PMA_USER: root
PMA_PASSWORD: Secret
Porty:
- „5000: 80”
wolumeny:
mysql-data:

Kompozycja dokera.Yaml Plik powinien wyglądać w następujący sposób.

Tutaj stworzyłem 3 usługi serwer internetowy, MySQL-Server I phpMyAdmin.

serwer internetowy Usługa będzie uruchomiła na zamówienie obraz Docker zgodnie z definicją php.Dockerfile.

MySQL-Server Usługa będzie uruchomiła Mysql: 8.0.19 Zdjęcie (z DockerHub) w kontenerze Docker.

phpMyAdmin Usługa będzie uruchomiła phpmyadmin/phpMyAdmin: 5.0.1 Zdjęcie (z Dockerhub) w innym kontenerze Docker.

W MySQL-Server usługa, Mysql_root_password Zmienna środowiskowa służy do ustawienia źródło Hasło MySQL.

W phpMyAdmin usługa, PMA_HOST, PMA_USER, PMA_PASSWORD Zmienne środowiskowe służą odpowiednio do ustawiania nazwy hosta MySQL, nazwy użytkownika i hasła, których phpMyAdmin użyje do połączenia z serwerem bazy danych MySQL działających jako MySQL-Server praca.

W MySQL-Server usługa, cała zawartość /var/lib/mysql katalog zostanie zapisany na stałe w mysql-data tom.'

w serwer internetowy serwis, port kontenerowy 80 (po prawej) jest odwzorowane na port hosta Docker 8080 (lewy).'

w phpMyAdmin serwis, port kontenerowy 5000 (po prawej) jest odwzorowane na port hosta Docker 80 (lewy).

Utwórz także indeks.php plik w html/ katalog do testowania serwera lampy.

Zawartość indeks.php Plik w moim przypadku,

$ host = "mysql-server";
$ user = "root";
$ pass = "secret";
$ db = "app1";
próbować
$ conn = new pdo ("mysql: host = $ host; dbname = $ db", $ user, $ pas);
$ conn-> setAttribute (pdo :: attr_errmode, pdo :: errMode_Exception);
Echo „powiązane z powodzeniem”;
catch (pdoException $ e)
Echo „Połączenie nie powiodło się:” . $ e-> getMessage ();

?>

Wreszcie katalog projektu ~/Docker/lampa powinien wyglądać w następujący sposób:

Uruchomienie serwera:

Teraz, aby rozpocząć serwer internetowy, MySQL-Server I phpMyAdmin Usługi, uruchom następujące polecenie:

$ Docker -Compose Up -d

Wszystkie usługi powinny rozpocząć się w tle.

Aby zobaczyć, jak mapowane są porty, uruchom następujące polecenie:

$ Docker-Compose Ps

Jak widać, dla serwer internetowy serwis, port hosta Docker 8080 jest odwzorowany na port TCP kontenera 80.

Dla phpMyAdmin serwis, port hosta Docker 5000 jest odwzorowany na port TCP kontenera 80.

Znalezienie adresu IP hosta Docker:

Jeśli chcesz uzyskać dostęp do serwera lamp z innych komputerów w sieci, musisz znać adres IP swojego hosta Docker.

Aby znaleźć adres IP swojego hosta Dockera, uruchom następujące polecenie:

$ ip

W moim przypadku adres IP mojego hosta dokera 192.168.20.160. Będzie dla Ciebie inaczej. Więc upewnij się, że odtąd zastąp go swoim.

Testowanie serwera lampy:

Teraz możesz uzyskać dostęp do phpMyAdmin 5 i serwera WWW z przeglądarki internetowej.

Aby uzyskać dostęp do phpMyAdmin 5, otwórz przeglądarkę internetową i odwiedź http: // localhost: 5000 od hosta Dockera lub odwiedź http: // 192.168.20.160: 5000 z dowolnego innego komputera w sieci.

phpMyAdmin 5 powinien załadować w przeglądarce internetowej.

Teraz stwórz App1 Baza danych mysql z phpMyAdmin.

Teraz odwiedź http: // localhost: 8080 z hosta Dockera lub http: // 192.168.20.160: 8080 z dowolnego innego komputera w sieci, aby uzyskać dostęp do serwera WWW.

Powinieneś zobaczyć Powiązane z powodzeniem wiadomość. Oznacza to, że PHP działa, a serwer bazy danych MySQL jest dostępny z serwer internetowy pojemnik. Tak więc technicznie serwer lampy jest w pełni funkcjonalny.

Zatrzymanie serwera lampy:

Zatrzymać serwer internetowy, MySQL-Server I phpMyAdmin Usługi, uruchom następujące polecenie:

$ Docker-Compose Down

serwer internetowy, MySQL-Server I phpMyAdmin Usługi powinny zostać zatrzymane.

Oczyszczanie danych MySQL Server:

Jeśli chcesz usunąć wszystkie dane i ustawienia bazy danych mysql, musisz usunąć mysql-data tom.

Rzeczywista nazwa woluminu można znaleźć za pomocą następującego polecenia:

$ Docker Volume LS

Możesz usunąć głośność LAMP_MYSQL-DATA Z następującym poleceniem:

$ Docker Volume RM LAMP_MYSQL-DATA

Tak więc skonfigurowałeś serwer lamp z Dockerem. Dziękujemy za przeczytanie tego artykułu.

Jak widać, głośność do usuwania jest LAMP_MYSQL-DATA.