Dengan peningkatan teknologi pengkomputeran awan dan kontena, platform orkestrasi kontena semakin menarik perhatian. Rancher ialah platform pengurusan kontena sumber terbuka yang menyokong pelbagai alat orkestrasi kontena seperti Kubernetes, Mesos dan Docker Swarm Ia menyediakan antara muka pengurusan web yang mesra, menjadikan operasi dan penyelenggaraan gugusan kontena lebih mudah dan cekap. Artikel ini akan memperkenalkan cara membangunkan platform pengurusan kontena yang serupa dengan Rancher berdasarkan PHP.
- Persediaan
Sebelum memulakan pembangunan, anda perlu menyediakan alatan berikut:
- Docker: digunakan untuk menggunakan, mengurus dan menjalankan kontena .
- PHP 7.0 dan ke atas: digunakan untuk menulis aplikasi web dan berinteraksi dengan API Docker.
- Komposer: digunakan untuk mendapatkan dan mengurus kebergantungan PHP.
- Git: Digunakan untuk mengklon kod sumber Rancher daripada GitHub.
- Memasang kebergantungan
Sebelum pembangunan, kita perlu memasang beberapa pakej kebergantungan PHP, yang boleh dipasang menggunakan Komposer. Masukkan direktori kod dalam terminal dan laksanakan arahan berikut:
composer install
Arahan ini akan membaca kebergantungan PHP daripada fail composer.json dan memasangnya dalam direktori vendor.
- Membina imej Docker
Sebelum kami mula menulis kod, kami perlu membina imej Docker untuk menggunakan aplikasi kami. Dalam direktori kod, buat fail bernama Dockerfile dengan kandungan berikut:
Dockerfile
FROM php:7.4-apache
COPY >
RUN rm /etc/apt/preferences.d/no-debian-php &&
apt-get update &&
apt-get install -y
git
unzip
libzip-dev
&&
docker-php-ext-install -j$(nproc)
zip
&&
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Salin selepas log masuk
RUN composer install --no-interaction --no-dev --prefer-dist &&
chown -R www-data:www-data /var/www/html
Salin selepas log masuk
DEDAHKAN 80
Fail Docker ini menggunakan imej PHP 7.4 rasmi sebagai imej asas dan memasang alatan seperti Apache, Git, unzip dan sambungan zip PHP. Komposer juga dipasang untuk memudahkan pemasangan pakej pergantungan PHP. Akhir sekali, bekas akan mendengar pada port 80 dan bersedia untuk menerima permintaan HTTP.
Kemudian, gunakan arahan berikut untuk membina imej:
docker build -t my-rancher .
Arahan ini akan membina imej bernama my-rancher dalam semasa direktori Fail Docker di bawah dimodelkan.
Menulis kod
Sebelum menulis kod, kita perlu memahami API Docker. Docker menyediakan antara muka API RESTful, yang boleh kami akses melalui permintaan HTTP untuk mencipta, mengurus dan memantau bekas. Sebagai contoh, kita boleh menggunakan arahan berikut untuk menyenaraikan semua bekas yang sedang dijalankan:
curl --unix-socket /var/run/docker.sock http:/v1.24/containers/json
Antaranya, /var/run/docker.sock ialah soket UNIX Docker, yang bermaksud kami menggunakan soket ini untuk mengakses API Docker. Kami juga boleh menggunakan port TCP untuk mengakses API.
Dengan asas ini, kita boleh mula menulis kod. Dalam direktori kod, cipta fail bernama index.php dengan kandungan berikut:
require_once
DIR '/vendor/autoload.php '. ;
gunakan GuzzleHttpClient;
$client = new Client([
'base_uri' => 'unix:///var/run/docker.sock',
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json'
]
Salin selepas log masuk
]);
$response = $client->get( ' /v1.24/containers/json');
$containers = json_decode($response->getBody());
foreach ($containers as $container) {
$name = str_replace('/', '', $container->Names[0]);
echo "<li>$name</li>";
Salin selepas log masuk
}
?>
Fail ini menggunakan perpustakaan klien HTTP Guzzle untuk mengakses API Docker dan mendapatkan senarai semua bekas yang sedang berjalan dan menyenaraikannya.
Mulakan bekas-
Sekarang, kita boleh menggunakan arahan berikut untuk memulakan bekas:
docker run -d --name my-rancher -p 80 :80 my-rancher
Arahan ini akan memulakan bekas my-rancher dan memetakan port 80 bekas ke port 80 hos. Kini, kami boleh mengakses aplikasi kami melalui pelayar dengan mengakses http://localhost.
Ringkasan-
Artikel ini memperkenalkan cara membina platform pengurusan kontena seperti Rancher berdasarkan PHP. Kami menggunakan Docker dan PHP 7.0 atau lebih tinggi, menulis kod untuk mengakses API Docker, dan menggunakan Komposer untuk mengurus kebergantungan PHP. Membina platform pengurusan kontena seperti Rancher memerlukan lebih banyak kerja pembangunan, tetapi tutorial ini boleh membantu pembaca memahami cara menggunakan PHP untuk berinteraksi dengan API Docker, menyediakan asas untuk pembangunan seterusnya.
Atas ialah kandungan terperinci PHP melaksanakan platform pengurusan kontena Rancher sumber terbuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!