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
|
|
|
?>
|