Docker kennenlernen: Unterschied zwischen den Versionen
(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"…») |
|||
Zeile 90: | Zeile 90: | ||
<pre>$ docker rm <container_name/id></pre> | <pre>$ docker rm <container_name/id></pre> | ||
Mit <code>docker commit ..</code> können änderungen am Container in ein image übernommen werden. Es wird eine neue "Version" des image erzeugt. | Mit <code>docker commit ..</code> können änderungen am Container in ein image übernommen werden. Es wird eine neue "Version" des image erzeugt. | ||
+ | |||
+ | [[Category: Systemadministration]] |
Version vom 27. Oktober 2015, 10:56 Uhr
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:
- docker Webseite: https://www.docker.com/
- Wikipedia: http://de.wikipedia.org/wiki/Docker_(Software)
Installation
Referenz:
- Debian Wiki: https://wiki.debian.org/Docker
- docker Docs: http://docs.docker.com/installation/debian/#debian-wheezystable-7x-64-bit
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.