Images

Ein Image ist bei Docker eine portable Abbildung eines Containers.

Neues Image erstellen

Images werden über sogenannte Dockerfiles gesteuert. Das ist eine Datei mit Anweisungen für die Erstellung des Images. Mit dieser Komponente können diese Anweisungen programmatisch umgesetzt werden.

// Ein ReoTag definiert den Namen des Images
// Hier wird das Basis-Image definiert
$repoTag=new \Alvine\Infrastructure\Docker\RepoTag(
    \Alvine\Infrastructure\Docker\Build\Dockerfile::UBUNTU);

// Dockerfile erstellen
$dockerfile=new \Alvine\Infrastructure\Docker\Build\Dockerfile($repoTag);

// Befehl setzen
$dockerfile->setCommand('ls');

$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));

// Name des erstellten Images
$imgRepoTag=new \Alvine\Infrastructure\Docker\RepoTag(
    'test', 'latest');

// Docker-Image bauen
$resultStream=$docker->build($dockerfile, $imgRepoTag);
$imageID=$resultStream->getImageID();

/**
 * Imagedaten auslesen
 */
$image=$docker->inspectImage($imageID);

Man kann sich die Daten der Erstellung auch ausgeben lassen

c7181780-d124-442b-a61a-5ed88267132b