Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP melaksanakan pengurus kontena Portainer sumber terbuka

PHP melaksanakan pengurus kontena Portainer sumber terbuka

WBOY
WBOYasal
2023-06-18 16:19:27886semak imbas

Dengan populariti teknologi kontena, semakin banyak aplikasi mula menggunakan bekas Docker untuk penempatan Portainer, sebagai pengurus kontena yang ringan, juga telah diiktiraf secara meluas untuk kemudahan penggunaan dan mudah alihnya. Artikel ini memperkenalkan cara menggunakan PHP untuk melaksanakan pengurus kontena Portainer sumber terbuka.

1. Pengenalan kepada Portainer

Portainer ialah pengurus kontena Docker ringan sumber terbuka yang boleh mengurus bekas Docker, imej, rangkaian dan volum data melalui antara muka web yang ringkas. Portainer menyokong pelbagai persekitaran Docker, termasuk Docker tempatan, Docker jauh dan kluster Swarm. Ciri Portainer ialah ia mudah digunakan dan tidak memerlukan sebarang operasi yang rumit, malah keperluan untuk menggunakan baris arahan untuk pengurusan. Selain itu, Portainer juga menyokong pengurusan berbilang pengguna dan berbilang pasukan, membolehkan pengguna mengurus berbilang projek dengan mudah.

2. Pelaksanaan PHP Portainer

Portainer ditulis dalam bahasa Go, tetapi fungsi serupa juga boleh dilaksanakan melalui PHP. Dalam PHP, anda boleh mengurus dan mengendalikan bekas Docker dengan menggunakan API Docker. Kami boleh menggunakan klien HTTP Guzzle PHP untuk menghantar permintaan HTTP kepada Docker Daemon dan menghuraikan respons untuk melaksanakan pemetaan port, pengurusan kontena dan fungsi lain. Pertama, anda perlu memasang Guzzle PHP dalam PHP Untuk kaedah pemasangan, sila rujuk laman web rasmi Guzzle (https://docs.guzzlephp.org/en/stable/).

Yang berikut mengambil pengurusan bekas Docker sebagai contoh untuk memperkenalkan cara melaksanakan versi PHP Portainer yang mudah. Pertama, anda perlu mendapatkan token akses untuk Docker API Token akses boleh diperolehi melalui arahan berikut:

$ TOKEN=$(curl -s "https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/nginx:pull" | jq -r '.token')

Selepas mendapatkan token akses, anda boleh mendapatkan senarai kontena melalui kod berikut:

$client = new GuzzleHttpClient([
    'headers' => [
        'Authorization' => 'Bearer ' . $TOKEN,
    ],
]);
$response = $client->get('https://registry.hub.docker.com/v2/repositories/library/nginx/tags/');
$containers = json_decode($response->getBody(), true)['results'];

Kod di atas memperoleh senarai teg imej nginx dengan mengakses Docker Hub Respons yang dikembalikan termasuk nama, nombor versi, saiz dan maklumat lain bagi bekas. Begitu juga, anda boleh mendapatkan pemetaan port, log kontena dan maklumat lain dengan mengakses maklumat status kontena:

$response = $client->get('http://localhost:2375/containers/nginx/json');
$container_info = json_decode($response->getBody(), true);

Selepas mendapatkan maklumat status kontena, anda boleh melakukan operasi pada kontena, seperti memulakan, menghentikan, memulakan semula, dsb.:

$response = $client->post('http://localhost:2375/containers/nginx/start');
$response = $client->post('http://localhost:2375/containers/nginx/stop');
$response = $client->post('http://localhost:2375/containers/nginx/restart');

3. Ringkasan

Artikel ini memperkenalkan cara menggunakan PHP untuk melaksanakan pengurus kontena Portainer sumber terbuka Walaupun PHP akan mengalami beberapa kehilangan prestasi berbanding Go, menggunakan PHP untuk melaksanakan Portainer juga mempunyai Beberapa kelebihan, seperti penggunaan dan penyelenggaraan yang mudah, pembangunan sekunder yang mudah, dsb. Melaksanakan Portainer melalui PHP membolehkan lebih ramai orang mengalami kemudahan yang dibawa oleh kontena, dan komited untuk mempromosikan pempopularan dan penggunaan teknologi kontena.

Atas ialah kandungan terperinci PHP melaksanakan pengurus kontena Portainer sumber terbuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn