SiDoMan/classen/docker.php

55 lines
1.7 KiB
PHP
Raw Permalink Normal View History

2020-10-23 09:55:26 +00:00
<?php
class Docker
{
2020-10-23 10:14:23 +00:00
private $CurlClient = NULL;
2020-10-23 09:55:26 +00:00
2020-10-23 10:14:23 +00:00
function __construct(){
$this->CurlClient = curl_init();
curl_setopt($this->CurlClient, CURLOPT_UNIX_SOCKET_PATH, "/var/run/docker.sock");
2020-10-23 10:50:57 +00:00
curl_setopt($this->CurlClient, CURLOPT_RETURNTRANSFER, TRUE);
2020-10-23 11:03:02 +00:00
curl_setopt($this->CurlClient, CURLOPT_BINARYTRANSFER, TRUE);
2020-10-23 09:55:26 +00:00
}
public function getAllContainers(){
2020-10-23 11:11:24 +00:00
curl_setopt($this->CurlClient, CURLOPT_POST, FALSE);
2020-10-23 20:56:45 +00:00
curl_setopt($this->CurlClient, CURLOPT_URL, "http:/v1.24/containers/json?all=1");
2020-10-23 10:14:23 +00:00
$jsonRAWData = curl_exec($this->CurlClient);
2020-10-23 09:55:26 +00:00
return json_decode($jsonRAWData, TRUE);
}
public function getContainerLogs($container){
2020-10-23 11:11:24 +00:00
curl_setopt($this->CurlClient, CURLOPT_POST, FALSE);
2020-10-23 21:58:08 +00:00
curl_setopt($this->CurlClient, CURLOPT_URL, "http:/v1.24/containers/".$container."/logs?stdout=1&tail=350");
2020-10-23 09:55:26 +00:00
2020-10-23 10:50:57 +00:00
$rawOutput = curl_exec($this->CurlClient);
return $rawOutput;
2020-10-23 09:55:26 +00:00
}
public function startContainer($container){
2020-10-23 11:11:24 +00:00
curl_setopt($this->CurlClient, CURLOPT_POST, TRUE);
curl_setopt($this->CurlClient, CURLOPT_URL, "http:/v1.24/containers/".$container."/start");
2020-10-23 09:55:26 +00:00
2020-10-23 11:11:24 +00:00
$rawOutput = curl_exec($this->CurlClient);
2020-10-23 09:55:26 +00:00
}
public function stopContainer($container){
2020-10-23 11:11:24 +00:00
curl_setopt($this->CurlClient, CURLOPT_POST, TRUE);
curl_setopt($this->CurlClient, CURLOPT_URL, "http:/v1.24/containers/".$container."/stop");
2020-10-23 09:55:26 +00:00
2020-10-23 11:11:24 +00:00
$rawOutput = curl_exec($this->CurlClient);
2020-10-23 09:55:26 +00:00
}
public function killContainer($container){
2020-10-23 11:11:24 +00:00
curl_setopt($this->CurlClient, CURLOPT_POST, TRUE);
curl_setopt($this->CurlClient, CURLOPT_URL, "http:/v1.24/containers/".$container."/kill");
2020-10-23 09:55:26 +00:00
2020-10-23 11:11:24 +00:00
$rawOutput = curl_exec($this->CurlClient);
2020-10-23 09:55:26 +00:00
}
2020-10-23 19:00:04 +00:00
public function getError($container){
return curl_strerror(curl_errno($this->CurlClient));
}
2020-10-23 09:55:26 +00:00
}
2020-10-23 10:14:23 +00:00
?>