Docker kennenlernen

Aus revampedia
Version vom 27. Oktober 2015, 11:55 Uhr von Cem Aydin (Diskussion | Beiträge) (Die Seite wurde neu angelegt: «Wir möchten gerne <code>docker</code> etwas kennenlernen/ausprobieren/testen. <code>docker</code> bietet ein Framework zur Verwaltung von "Containern&quot…»)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Wir möchten gerne docker etwas kennenlernen/ausprobieren/testen.

docker bietet ein Framework zur Verwaltung von "Containern". Applikationen können dann in diesen Containern mit einer isolierten Umgebung laufen.

Referenzen:

Installation

Referenz:

docker soll zukünftig im jessie-backports Repository verwaltet werden. Da der Release Cycle von docker zu schnell ist für stable. Siehe dazu: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=781554

Leider ist zur Zeit (2015-06-09) docker dort nicht zu finden. Die Anleitung unter docker/Docs ist somit schlichtweg falsch.

Siehe dazu: https://github.com/docker/docker/pull/13104 Sowie: https://github.com/docker/docker/issues/12861

Glücklicherweise bietet Anscheinend docker ein eigenes Ubuntu Repository, welches auch für Debian funktionieren soll. Siehe auch letzer obiger Link.

Die einfachste Art dieses zu nutzen scheint ein Script zu sein, welches über https://get.docker.com/ erhältlich ist.

Dieses trägt die Repositories ein und installiert docker.

Siehe: http://linuxconfig.org/package-docker-io-has-no-installation-candidate-debian-jessie

(Bei uns auf pingu-devel.)

$ sudo apt-get install curl
$ curl -sSL https://get.docker.com/ | sudo sh

Benutzung als nicht-root erlauben

Benutzer zur Gruppe docker hinzufügen.

(Innerhalb von docker haben diese Benutzer volle Rechte.)

Benutzung

Erstellen eines neuen image (debian)

Referenz: - https://docs.docker.com/articles/baseimages/

debootstrap installiert.

Ein chroot erstellen:

$ sudo debootstrap jessie jessie

Davon ein tar Archiv erzeugen:

$ sudo tar -C jessie-minbase/ -cf jessie-minbase.tar .

Dieses in docker importieren:

$ cat jessie-minbase.tar | docker import - jessie-minbase_cem:init

Referenz: - https://docs.docker.com/userguide/dockerizing/

Vorhandene images auflisten:

$ docker images

Container

Anwendungen werden innerhalb von Containern ausgeführt.

"images sind die 'Quelle' für Container."

Einen Befehl im Container ausführen:

$ docker run jessie-minbase_cem:init echo 'Hello World'

Wenn der Befehl ausgeführt wurde, wird der Container gestoppt.

Der Container sowie Änderungen darin bleiben aber anscheinend "erhalten".

Soweit ich verstehe ist docker create .. gleichwertig zu docker run. Die Container werden einfach nicht gleich ausgeführt, sondern lediglich vorbereitet. Diese können dann später mit docker start .. gestartet werden.

Alle Container anzeigen:

$ docker ps -a

-a alle (auch gestoppte)

Ein gestoppter Container kann erneut gestartet werden:

$ docker start -a <container_name/id>

-a STDOUT und STDERR anbinden

Oder den Container löschen (endgültig):

$ docker rm <container_name/id>

Mit docker commit .. können änderungen am Container in ein image übernommen werden. Es wird eine neue "Version" des image erzeugt.