Container

Ein Container ist ein lauffähiges, virtuelles Betriebssystem.

Neuen Container erstellen

Ein neuer Container benötigt eine Konfiguration, die in der Minimalversion das Image und den Befehl benötigt, der ausgeführt werden soll.

$docker=new \Alvine\Infrastructure\Docker\Client(
    // URI auf die TCP Schnittstelle
    // localhost Host auf dem Docker läuft
    // 2375 ist der standard-PORT von Docker
    // $uri = new \Alvine\Net\Resource\URI('http://localhost:2375'));
    // 
    // Alternativ kann auch der Unix-Socket verwendet werden.
    // $uri = new \Alvine\Net\Resource\URI('unix:///var/run/docker.sock'));
    new \Alvine\Net\Resource\URI($uri));  

$cfg=(new \Alvine\Infrastructure\Docker\Container\Config('ubuntu'))
    ->setCmd(['/bin/sleep', '1000']); // Ubuntu laden

// Container erstellen und starten
$container=$docker->createContainer(null, $cfg);
echo $container->getContainerID();
// Ergebnis 
// -> 9175058864b1261227a262dbc2ec470996f53863a044374000e667437e119f3d4b545d0
$docker->startContainer($container->getContainerID()); 

// Kürzer: create und start sind in run zusammengefasst
$container = $docker->runContainer(null, $cfg);
echo  $container->getContainerID();
// Ergebnis 
// -> 9175058864b1261227a262dbc2ec470996f53863a044374000e667437e119f3d4b545d0

Containerdaten auslesen

Die Containerdaten können mit der Methode AlvineInfrastructureDockerClient::inspectContainer ausgelesen werden.

$docker=new \Alvine\Infrastructure\Docker\Client(
    // URI auf die TCP Schnittstelle
    // localhost Host auf dem Docker läuft
    // 2375 ist der standard-PORT von Docker
    // $uri = new \Alvine\Net\Resource\URI('http://localhost:2375'));
    // 
    // Alternativ kann auch der Unix-Socket verwendet werden.
    // $uri = new \Alvine\Net\Resource\URI('unix:///var/run/docker.sock'));
    new \Alvine\Net\Resource\URI($uri));  
$container=$docker->inspectContainer($containerID); // $containerID muss defniert sein

echo $container->getContainerID();
// Ergebnis 
// -> a79ba5bf04f31b3757ec9ff73de8a278a3ccfbc44f6a5e53d296b335cd368a38

Laufende Prozesse im Container

In einem Container laufende Prozesse

2e07a256-18e7-46a5-c6a5-e46cdcc03228