Docker

Sediakan pelayan LAMP dengan Docker

Sediakan pelayan LAMP dengan Docker
Dalam artikel ini, saya akan menunjukkan kepada anda cara menggunakan Docker Compose untuk membuat pelayan LAMP untuk pengembangan web PHP. Oleh itu, mari kita mulakan.

Keperluan:

Untuk mengikuti artikel ini, anda mesti memasang Docker di komputer anda. LinuxHint mempunyai banyak artikel yang boleh anda ikuti untuk memasang Docker pada edaran Linux yang anda inginkan jika anda belum memasangnya. Oleh itu, pastikan anda menyemak LinuxHint.sekiranya anda menghadapi masalah memasang Docker.

Memasang Docker Compose:

Anda boleh memuat turun fail binari Docker Compose dengan mudah dengan arahan berikut:

$ sudo curl -L "https: // github.com / docker / mengarang / melepaskan / memuat turun / 1.24.1 /
docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose

NOTA: kerinting mungkin tidak dipasang pada edaran Linux anda. Sekiranya demikian, anda boleh memasang curl dengan arahan berikut:

Ubuntu / Debian / Linux Mint:

$ sudo apt install curl -y

CentOS / RHEL / Fedora:

$ sudo dnf memasang curl -y

Sekali dok-tulis fail binari dimuat turun, jalankan arahan berikut:

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

Sekarang, periksa sama ada dok-tulis arahan berfungsi seperti berikut:

versi $ docker-compose

Ia harus mencetak maklumat versi seperti yang ditunjukkan dalam tangkapan skrin di bawah.

Menyiapkan Docker Compose untuk Projek:

Sekarang, buat direktori projek ~ / dok / lampu (katakanlah) dan a html / direktori di dalam direktori projek untuk menyimpan fail laman web (i.e. php, html, css, js dll.) seperti berikut:

$ mkdir -p ~ / docker / lamp / html

Sekarang, arahkan ke direktori projek ~ / dok / lampu seperti berikut:

$ cd ~ / dok / lampu

Buat a php.Dockerfile dalam direktori projek ~ / dok / lampu. Ini adalah Dockerfile yang membolehkan sambungan php mysqli dan PDO di php: 7.4.3-apache gambar dari Docker Hub dan membina imej Docker tersuai daripadanya.

Kandungan dari php.Dockerfile diberikan di bawah.

DARI php: 7.4.3-apache

JALANKAN

docker-php-ext-install mysqli pdo pdo_mysql

Sekarang, buat a dok-tulis.keladi fail dalam direktori projek ~ / dok / lampu dan taipkan baris berikut di dok-tulis.keladi fail.

versi: "3.7 "
perkhidmatan:
pelayan web:
membina:
dockerfile: php.Dockerfile
konteks: .
mulakan semula: selalu
jilid:
- "./ html /: / var / www / html / "
pelabuhan:
- "8080: 80"
pelayan mysql:
gambar: mysql: 8.0.19
mulakan semula: selalu
persekitaran:
MYSQL_ROOT_PASSWORD: rahsia
jilid:
- mysql-data: / var / lib / mysql
phpmyadmin:
gambar: phpmyadmin / phpmyadmin: 5.0.1
mulakan semula: selalu
persekitaran:
PMA_HOST: pelayan mysql
PMA_USER: akar
PMA_PASSWORD: rahsia
pelabuhan:
- "5000: 80"
jilid:
data mysql:

The dok-tulis.keladi fail hendaklah seperti berikut.

Di sini, saya telah membuat 3 perkhidmatan pelayan web, pelayan mysql dan phpmyadmin.

pelayan web perkhidmatan akan menjalankan gambar Docker yang dibina khas seperti yang ditentukan dalam php.Dockerfile.

pelayan mysql perkhidmatan akan menjalankan mysql: 8.0.19 gambar (dari DockerHub) dalam bekas Docker.

phpmyadmin perkhidmatan akan menjalankan phpmyadmin / phpmyadmin: 5.0.1 gambar (dari DockerHub) dalam bekas Docker yang lain.

Dalam pelayan mysql perkhidmatan, yang MYSQL_ROOT_PASSWORD pemboleh ubah persekitaran digunakan untuk menetapkan akar kata laluan MySQL.

Dalam phpmyadmin perkhidmatan, yang PMA_HOST, PMA_USER, PMA_PASSWORD pemboleh ubah persekitaran digunakan untuk menetapkan nama host MySQL, nama pengguna dan kata laluan masing-masing yang akan digunakan oleh phpMyAdmin untuk menyambung ke pelayan pangkalan data MySQL yang berjalan sebagai pelayan mysql perkhidmatan.

Dalam pelayan mysql perkhidmatan, semua kandungan / var / lib / mysql direktori akan disimpan secara kekal di data mysql isi padu.'

Di dalam pelayan web perkhidmatan, pelabuhan kontena 80 (kanan) dipetakan ke port host Docker 8080 (dibiarkan).'

Di dalam phpmyadmin perkhidmatan, pelabuhan kontena 5000 (kanan) dipetakan ke port host Docker 80 (dibiarkan).

Juga, buat a indeks.php fail di html / direktori untuk menguji pelayan LAMP.

Kandungan dari indeks.php fail dalam kes saya,

$ host = "mysql-server";
$ pengguna = "root";
$ lulus = "rahsia";
$ db = "app1";
cuba
$ conn = PDO baru ("mysql: host = $ host; dbname = $ db", $ user, $ pass);
$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
 
gema "Berhubungan berjaya";
tangkapan (PDOException $ e)
echo "Sambungan gagal:" . $ e-> getMessage ();

?>

Akhirnya, direktori projek ~ / dok / lampu hendaklah kelihatan seperti berikut:

Memulakan Pelayan LAMP:

Sekarang, untuk memulakan pelayan web, pelayan mysql dan phpmyadmin perkhidmatan, jalankan arahan berikut:

$ docker-compose up -d

Semua perkhidmatan harus bermula di latar belakang.

Untuk melihat bagaimana port dipetakan, jalankan arahan berikut:

$ docker-mengarang ps

Seperti yang anda lihat, untuk pelayan web perkhidmatan, port host Docker 8080 dipetakan ke port TCP kontena 80.

Untuk phpmyadmin perkhidmatan, port host Docker 5000 dipetakan ke port TCP kontena 80.

Mencari Alamat IP Docker Host:

Sekiranya anda ingin mengakses pelayan LAMP dari komputer lain di rangkaian anda, anda mesti mengetahui alamat IP host Docker anda.

Untuk mencari alamat IP host Docker anda, jalankan arahan berikut:

$ ip

Dalam kes saya, alamat IP hos Docker saya 192.168.20.160. Ia akan berbeza bagi anda. Oleh itu, pastikan untuk menggantinya dengan milik anda mulai sekarang.

Menguji Pelayan LAMP:

Sekarang, anda boleh mengakses phpMyAdmin 5 dan pelayan web dari penyemak imbas web.

Untuk mengakses phpMyAdmin 5, buka penyemak imbas web dan lawati http: // localhost: 5000 dari hos Docker anda atau lawati http: // 192.168.20.160: 5000 dari komputer lain di rangkaian.

phpMyAdmin 5 harus dimuatkan dalam penyemak imbas web anda.

Sekarang, buat aplikasi1 Pangkalan data MySQL dari phpMyAdmin.

Sekarang, lawati http: // localhost: 8080 dari hos Docker anda atau http: // 192.168.20.160: 8080 dari komputer lain di rangkaian anda untuk mengakses pelayan web.

Anda mesti melihat Bersambung dengan jayanya mesej. Ini bermaksud, PHP berfungsi dan pelayan pangkalan data MySQL dapat diakses dari pelayan web bekas. Oleh itu, secara teknikal, pelayan LAMP berfungsi sepenuhnya.

Menghentikan Pelayan LAMP:

Untuk menghentikan pelayan web, pelayan mysql dan phpmyadmin perkhidmatan, jalankan arahan berikut:

$ docker-mengarang

The pelayan web, pelayan mysql dan phpmyadmin perkhidmatan harus dihentikan.

Membersihkan Data Pelayan MySQL:

Sekiranya anda ingin membuang semua data dan tetapan pangkalan data MySQL, anda mesti membuang data mysql isi padu.

Anda boleh mendapatkan nama sebenar volume dengan arahan berikut:

isipadu $ docker ls

Anda boleh mengeluarkan kelantangan lamp_mysql-data dengan arahan berikut:

$ dok jumlah isi rm lamp_mysql-data

Jadi, itulah cara anda menyediakan pelayan LAMP dengan Docker. Terima kasih kerana membaca artikel ini.

Seperti yang anda lihat, jumlah yang hendak dikeluarkan ialah lamp_mysql-data.

Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...
Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...