Docker
Docker ist eine Container-Lösung, eine Art "leichte" Virtualisierung.
Installation
sudo aptitude install lxc apparmor docker.io sudo addgroup USER docker docker info
Speicherort für Images etc. umhängen
Mit
docker info
kann man sich anzeigen lassen, wo Docker Images u.Ä. abspeichert. In der /etc/fstab
kann man das auf einen Ordner einer anderen Partition umhängen:
/media/anderePartiton/aufsRoot /var/lib/docker/aufs none bind 0 0
Erstellen eines eigenen Basis-Images
Auf Ubuntu / Debian-Basis lässt sich mit Hilfe von debootstrap und tar ein Basisimage erstellen. Siehe dazu die Docker-Anleitung.
Dazu erstellt man die Grundstruktur des neuen Systems mit debootstrap:
mkdir wheezyBaseFiles sudo debootstrap --variant=minbase wheezy wheezyBaseFiles
Anschließend wird die komplette Verzeichnisstruktur in ein tar-Archiv gepackt und über eine Linux-Pipe sofort in docker importiert:
sudo tar -C wheezyBaseFiles -c . | docker import - myuser/wheezy_base
Kleiner Test:
docker run myuser/wheezy_base cat /etc/os-release
oder die Shell starten mit
docker run -t -i myuser/wheezy_base /bin/bash
Bauen eines Images mit Dockerfile
Dazu erstellt man eine Datei namens Dockerfile
in einem (leeren) Verzeichnis mit folgendem Inhalt:
FROM wheezy_base MAINTAINER email@mailprovider.com RUN apt-get update && apt-get -y install apache2-mpm-prefork apache2 mediawiki
Dann wechselt man in das Verzeichnis mit cd
und baut das Image mit folgendem Befehl:
Ausführen einer Shell
Mittels der Flags -i
(für interaktiv) und -t
(für Binden von stdin und stdout ans Terminal) lässt sich auch eine interaktive Shell ausführen.
docker run -i -t wheezy_base /bin/bash
Starten eines zweiten Terminals
Braucht man eine zweite Shell für einen laufenden Container, sucht man zunächst den Containernamen
docker ps
Dann startet man die Bash das zweite Mal:
docker exec -t -i myuser/wheezy_base /bin/bash