Docker Client
Die API bezieht sich auf die Version 1.21 der Docker-API
Build
Mit Hilfe des Clients lassen sich Images bauen.
$df = new \Alvine\Infrastructure\Docker\Build\Dockerfile('ubuntu');
$df->setMaintainer('[email protected]');
$df->addFile(new Alvine\IO\File\File('readme.txt'), '/opt/readme.txt');
$df->addRun('apt-get update');
$docker = new \Alvine\Infrastructure\Docker\Client(new \Alvine\Net\Resource\URI('http://localhost:8080/'));
$stream = $docker->build($df);
echo (string) $stream;
Eventverarbeitung
Docker feuert für die unterschiedlichen Aktionen Events. Diese können über die
API abgefragt werden. Dazu wird ein sogenannter Long-Call verwendet. Eine endlose
HTTP-Abfrage.
$docker = new \Alvine\Infrastructure\Docker\Client(new \Alvine\Net\Resource\URI('http://localhost:8080/'));
while(true) {
$docker->handleEvents(function($event) use ($docker) {
if($event->getAction==='die') $docker->dispose();
});
}
Methods summary
protected
Alvine\Types\ArrayHelper
|
#
getArrayFromJson( string $json, boolean $arrayHelperFlag = true )
Umwandlung eines Json in ein ArrayHelper-Objekt
Umwandlung eines Json in ein ArrayHelper-Objekt
Parameters
- $json
- Json
- $arrayHelperFlag
- Rückgabetyp
Returns
Alvine\Types\ArrayHelper
Throws
Alvine\Types\TypeException
|
public
Alvine\Infrastructure\Docker\Container
|
#
getContainerByName( string $name )
Container mit Name suchen
Container mit Name suchen
Parameters
Returns
Throws
|
public
Alvine\Types\Collection
|
#
getContainers( boolean $all = false, integer $limit = null, string $since = null, string $before = null, Alvine\Types\Collection $filters = null )
Liste aller Container auslesen
Liste aller Container auslesen
Parameters
- $all
- Zeige alle Container an (inkl. Exit)
- $limit
- Zeige $limit zuletzt erstellte Container an
- $since
- Zeige nur Contaier, die nach der ID erstellt wurden
- $before
- Zeige alle Container die vor der ID erstellt wurden
- $filters
- Filter
Returns
Alvine\Types\Collection Collection-Objekt mit Container-Daten
Throws
Alvine\Net\ConnectionFailedException Verbindung nicht möglich
|
public
Alvine\Infrastructure\Docker\Archive
|
#
getContainerArchive( string $id, Alvine\IO\File\Directory $path = null )
Dateien aus dem Container auslesen
und als Archive zurückgeben.
Dateien aus dem Container auslesen
und als Archive zurückgeben.
200 - success, returns archive of copied resource
400 - client error, bad parameter, details in JSON response body, one of:
must specify path parameter (path cannot be empty)
not a directory (path was asserted to be a directory but exists as a file)
404 - client error, resource not found, one of: – no such container (container id does not exist)
no such file or directory (path does not exist)
500 - server error
SymLinks werden immer zum Ziel hin aufgelöst.
Das Archive kann über Archive::save($file) gespeichert
oder über Archive::extractTo() weiterverarbeitet werden.
Parameters
Returns
Alvine\Infrastructure\Docker\Archive
|
public
Alvine\Infrastructure\Docker\Client
|
#
putContainerArchive( string $id, Alvine\Infrastructure\Docker\Container\Archive $archive, string $path = null, $noOverwriteDirNonDir = null )
Dateien in einen Container übertragen
Dateien in einen Container übertragen
200 – the content was extracted successfully
400 - client error, bad parameter, details in JSON response body, one of:
must specify path parameter (path cannot be empty)
not a directory (path should be a directory but exists as a file)
unable to overwrite existing directory with non-directory (if noOverwriteDirNonDir)
unable to overwrite existing non-directory with directory (if noOverwriteDirNonDir)
403 - client error, permission denied, the volume or container rootfs is marked as read-only.
404 - client error, resource not found, one of: – no such container (container id does not exist)
no such file or directory (path resource does not exist)
500 – server error
Das Zielverzeichnis muss vorhanden sein, ansonsten wird ein 404 zurückgemeldet
Parameters
- $id
- $archive
- $path
- $noOverwriteDirNonDir
Returns
Throw
\Alvine\Net\Http\NotFoundException
\Alvine\Net\Http\ServerException
|
public
Alvine\Types\Collection<\Alvine\Infrastructure\Docker\Volume>
|
#
getVolumes( Alvine\Types\Collection $filters = null )
Volumes holen
Parameters
Returns
Alvine\Types\Collection<\Alvine\Infrastructure\Docker\Volume>
|
public
Alvine\Infrastructure\Docker\Volume
|
#
getVolume( string $name )
Volume holen
Parameters
Returns
Throws
Alvine\Net\Http\NotFoundException
|
public
Alvine\Infrastructure\Docker\Volume
|
|
public
Alvine\Infrastructure\Docker\Client
|
#
deleteVolume( string $name )
Volume löschen
Parameters
Returns
Throws
Alvine\Net\Http\NotFoundException
|
public
Alvine\Infrastructure\Docker\Container
|
#
inspectContainer( string $id )
Daten des Containers auslesen
Daten des Containers auslesen
Parameters
Returns
Throws
Alvine\Net\ConnectionFailedException
|
public
Alvine\Infrastructure\Docker\Container
|
|
public
Alvine\Infrastructure\Docker\Container
|
|
public
Alvine\Infrastructure\Docker\Container
|
#
startContainer( string $id )
Container starten
Ein vorhandener Container wird neu gestartet.
Parameters
Returns
Throws
|
public
array|Alvine\Types\ArrayHelper
|
#
getContainerStatsAsArray( string $id, boolean $returnHelper = true )
Direkte Ausgabe der Daten vom docker-Host als Array
Direkte Ausgabe der Daten vom docker-Host als Array
Parameters
- $id
- Name oder ID
- $returnHelper
Returns
array|Alvine\Types\ArrayHelper
|
public
Alvine\Infrastructure\Docker\Container\Stats
|
#
getContainerStats( string $id )
Holt Statistiken zum laufendne Container
Holt Statistiken zum laufendne Container
Die Abfrage wird mit stream=0 durchgeführt und
liefert somit nur ein Ergebnis zurück.
Parameters
Returns
Throws
Alvine\Net\Http\NotFoundException
|
public
Alvine\Infrastructure\Docker\Client
|
#
stopContainer( string $id )
Container stoppen
Stop einen laufenden Container und sendet SIGTERM und nach einer kurzen Zeit SIGKILL
Parameters
Returns
|
public
Alvine\Types\Collection
|
#
getProcesses( string $id )
In einem Container laufende
Prozesse holen und als Collection
zurückgeben.
In einem Container laufende
Prozesse holen und als Collection
zurückgeben.
Parameters
Returns
Alvine\Types\Collection
|
public
array|Alvine\Types\ArrayHelper
|
#
getSystemInfoAsArray( string $returnHelper = true, boolean $returnHelper,… )
Direkte Ausgabe der Daten vom docker-Host als Array
Direkte Ausgabe der Daten vom docker-Host als Array
Parameters
- $returnHelper
- $id Name oder ID
- $returnHelper,…
Returns
array|Alvine\Types\ArrayHelper
|
public
Alvine\Infrastructure\Docker\System\Info
|
|
public
Alvine\Infrastructure\Docker\Client
|
#
restartContainer( string $id, integer $secondsToWait = 0 )
Container neu starten
Parameters
- $id
- ContainerID
- $secondsToWait
- Anzahl der Sekunden die gewrtet werden soll
Returns
|
public
Alvine\Infrastructure\Docker\Client
|
#
deleteContainer( string $id )
Container löschen
Parameters
Returns
|
public
Alvine\Types\Collection<\Alvine\Infrastructure\Docker\Image>
|
#
getImages( )
Auf dem Host verfügbare Images holen
Auf dem Host verfügbare Images holen
Returns
Alvine\Types\Collection<\Alvine\Infrastructure\Docker\Image> Collection mit Imagedaten
Throws
|
public
Alvine\Types\Collection<\Alvine\Infrastructure\Docker\Image>
|
#
searchImageByRepoTag( Alvine\Infrastructure\Docker\RepoTag $repoTag )
Suche Image
Parameters
Returns
Alvine\Types\Collection<\Alvine\Infrastructure\Docker\Image> Collection mit Imagedaten
Throws
|
public
Alvine\Infrastructure\Docker\Image
|
#
inspectImage( string $id )
Holt Informationen zu einem Image
Holt Informationen zu einem Image
Parameters
Returns
|
public
Alvine\Infrastructure\Docker\Client
|
#
deleteImage( Alvine\Infrastructure\Docker\RepoTag $repoTag, boolean $force = false, boolean $noprune = false )
Löscht ein Image
Parameters
- $repoTag
- ImageTag
- $force
- Force
- $noprune
- Lösche keine untagged Elternimages
Returns
Throw
\Alvine\Net\Http\NotFoundException
\Alvine\Net\Http\ServerException
|
public
Alvine\Infrastructure\Docker\Client
|
|
public
Alvine\Infrastructure\Docker\Build\ResultStream
|
#
build( Alvine\Infrastructure\Docker\Build\Dockerfile $dockerfile, Alvine\Infrastructure\Docker\RepoTag $repoTag = null, boolean $cache = true, boolean $verbose = true, Alvine\Infrastructure\Docker\Labels $labels = null, Alvine\Types\Map $extras = null )
Neues Image erstellen
Dieser Aufruf führt die Anweisungen in dem übergebenen
ockerfile aus und erstell ein Image. Das Ergebnis wird
in dem ResultStream gesammelt und zurückgegeben.
Über $extras können folgende Werte übergeben werden
remote – A Git repository URI or HTTP/HTTPS context URI. If the URI points to a single text file, the file’s contents are placed into a file called Dockerfile and the image is built from that file. If the URI points to a tarball, the file is downloaded by the daemon and the contents therein used as the context for the build. If the URI points to a tarball and the dockerfile parameter is also specified, there must be a file with the corresponding path inside the tarball.
pull - Attempt to pull the image even if an older image exists locally.
rm - Remove intermediate containers after a successful build (default behavior).
forcerm - Always remove intermediate containers (includes rm).
memory - Set memory limit for build.
memswap - Total memory (memory + swap), -1 to enable unlimited swap.
cpushares - CPU shares (relative weight).
cpusetcpus - CPUs in which to allow execution (e.g., 0-3, 0,1).
cpuperiod - The length of a CPU period in microseconds.
cpuquota - Microseconds of CPU time that the container can get in a CPU period.
buildargs – JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker uses the buildargs as the environment context for command(s) run via the Dockerfile’s RUN instruction or for variable expansion in other Dockerfile instructions. This is not meant for passing secret values. Read more about the buildargs instruction
shmsize - Size of /dev/shm in bytes. The size must be greater than 0. If omitted the system uses 64MB.
Parameters
- $dockerfile
- Dockerfile
- $repoTag
- ImageTag des fertigen Images
- $cache
- Chache aktivieren
- $verbose
- Verbose
- $labels
- Labels
- $extras
- Extra-Parameter
Returns
|
public
Alvine\Infrastructure\Docker\EventQueue
|
#
getEventQueue( )
EventQueue zurückgeben
Returns
Link
|