Sonderdruck für. Software & Support Media GmbH

Größe: px
Ab Seite anzeigen:

Download "Sonderdruck für. www.codecentric.de. Software & Support Media GmbH"

Transkript

1 Sonderdruck für Software & Support Media GmbH 1

2 Grundlagen Eine Einführung in die System-Level-Virtualisierung Docker-Basics Möchte man sich tiefer in eine neue Technologie einarbeiten, ist fundiertes Grundlagenwissen unabdingbar. Zum Auftakt dieses Entwickler Magazin Spezials möchten wir Sie deshalb in die Basics von Docker einführen. Dabei wird unter anderem demonstriert, wie man hundert virtuelle Maschinen auf einem eigenen Rechner starten kann. Alle Beispiele können von GitHub heruntergeladen und ausprobiert werden. von Dr. Lukas Pustina istockphoto.com/alex_doubovitsky 2 Entwickler Magazin Spezial Vol. 2 Software & Support Media GmbH

3 Der Einsatz von virtuellen Maschinen hat viele Vorteile. Sie lasten Hardware besser aus, man kann leicht Backups machen und einzelne Dienste auf einer Hardware voneinander isolieren. Virtuelle Maschinen haben aber auch Nachteile. Ihre Images sind meist mehrere Gigabytes groß und sperrig. Wesentlicher ist jedoch, dass virtuelle Maschinen viele Ressourcen verbrauchen, da stets ein gesamter Rechner emuliert und ein Betriebssystemkernel gestartet werden muss. Docker [1] ist eine leichtgewichtige Alternative, die System-Level-Virtualisierung unter Linux nutzt und so die Vorteile von virtuellen Maschinen ohne die genannten Nachteile erreicht. Dieser Einführungsartikel bezieht sich auf die Docker-Version Alle Beispiele sind vollständig auf GitHub unter [2] verfügbar. Was ist Docker? Docker hat in diesem Jahr sehr viel Traktion entwickelt und wird in aktuellen Distributionen von Red Hat und Ubuntu ausgeliefert. Firmen wie Spotify, Google, BBC, ebay, CenterDevice und seit Kurzem auch Zalando (Interview auf Seite 94) setzen Docker bereits produktiv ein. Die geschickte Kombination aus Laufzeitumgebung und Image Repository erleichtert den Einsatz von virtuellen Maschinen enorm. Zur Unterscheidung von Hypervisor-basierten virtuellen Maschinen wird von System-Level-basierten virtuellen Maschinen oder einfach Containern gesprochen. Damit ist Docker ein hervorragendes Werkzeug, um die tägliche Arbeit von Entwicklern und Administratoren zu vereinfachen. Docker nutzt spezielle Kernelfunktionalitäten, um einzelne Prozesse in Containern voneinander zu isolieren. Für Prozesse, die mit Containern gestartet werden, scheint es so, als würden sie auf einem eigenen System laufen. Bis Version setzte Docker für die Prozess isolation das Linux-Containers-Projekt (LXC, [3]) ein. Seit Version 0.9 bringt Docker eine eigene Containerbibliothek namens libcontainer [4] mit. LXC wird jedoch weiterhin unterstützt. Die Basis von Linux-Containern sind Kernel-Namespaces, cgroups und Containertemplates. Wie Java Packages ermöglichen Kernel-Namespaces eigene Namensräume für Prozesse zu erzeugen. Prozess-IDs, Mount Points, Netzwerkgeräte und mehr können so pro Prozess wiederverwendet werden. Nähere Details lesen Sie im Artikel Docker Network Magic auf Seite 28. Zum Beispiel können zwei Prozesse auf die Netzwerkschnittstelle eth0 zugreifen, die jedoch tatsächlich vom Kernel auf die zwei physikalischen Schnittstellen eth1 und eth2 gemappt werden. Die Prozesse bekommen davon nichts mit. cgroups ist eine Kernelerweiterung, die ursprünglich von Google entwickelt worden ist und es erlaubt, Ressourcenbeschränkungen auf Prozessebene zu definieren. Damit lässt sich zum Beispiel festlegen, wie viel Speicher ein Prozess nutzen darf. Containertem plates sind eine Konvention einer Verzeichnisstruktur, die das Root- Abb. 1: Bestandteile von Docker siehe auch [7] Dateisystem eines Linux-Containerprozesses darstellt. Nähere Details bietet der Artikel Besuch im Maschinenraum auf Seite 14. Solche Linux-Container werden zum Beispiel von Heroku eingesetzt, um Prozesse einzelner Kunden voneinander zu trennen. Docker ist eine offene Implementierung dieses Konzepts, das darüber hinaus noch viele weitere spannende Funktionen mitbringt. Ferner bietet es Werkzeuge zum Erstellen, Austauschen und Ausführen von Linux-Containern, sodass diese einfach genutzt werden können. Es wird als Open Source federführend von der Firma Docker, Inc. entwickelt. Lesen Sie dazu auch das Interview mit Docker, Inc. auf Seite 40. Ein typisches Hello World mit Docker zeigt das Listing 1. Was hier genau passiert, wird im Folgenden genau erklärt. Docker-Bestandteile Docker besteht grundsätzlich aus drei Teilen: Docker Daemon, Docker-Images und Docker Repository (Abb. 1). Der Docker Daemon verwaltet die Laufzeitumgebung von Docker-Containern. Genauso wie virtuelle Maschinen auf Images basieren, basieren Docker-Container auf Docker-Images. Diese unterscheiden sich jedoch in einem wichtigen Punkt von Images in virtuellen Maschinen: Sie sind stapelbar. Docker Repositories sind eine Art GitHub für Images. Images werden in Repositories wie in einem Source Code Repo- Listing 1 > docker run -t ubuntu:14.04 /bin/echo "Hello World" Unable to find image 'ubuntu:14.04' locally Pulling repository ubuntu fdc: Download complete ea3c5a: Download complete b3553b91f79f: Download complete ca63a3899a99: Download complete ff01d67c9471: Download complete 7428bd008763: Download complete c7c7108e0ad8: Download complete Hello World Software & Support Media GmbH Entwickler Spezial Vol

4 Abb. 2: UnionFS für Docker-Images ( Docker, Inc.) sitory versioniert abgelegt. Es gibt ein öffentliches, von Docker, Inc. betriebenes Repository, das Docker Hub genannt wird. Dort findet man für sehr viele Dienste, wie zum Beispiel MongoDB, RabbitMQ, Redis, CouchDB, Elasticsearch, Postgres, MySQL, Apache Tomcat etc. fertige Images. Es werden auch komplette Stacks für Programmiersprachen wie Go, Java, Ruby etc. angeboten. Alle Images aus diesem Artikel findet man ebenfalls unter [5]. Man kann aber auch private, nur für einen geschlossenen Personenkreis zugängliche Repositories betreiben. Im Artikel Docker-Tools und -Helferlein auf der Entwickler-Magazin-Website [6] wird beschrieben, wie man eine eigene Docker Registry betreiben kann. Abbildung 1 veranschaulicht die Bestandteile von Docker und zeigt, wie diese miteinander verbunden sind. Zusätzlich wird boot2docker dargestellt, das Docker auf Windows und OS X mithilfe von VirtualBox zugänglich macht. Weitere Details dazu lesen Sie weiter unten im Abschnitt Installation. Listing 2 FROM ubuntu:14.04 MAINTAINER Lukas Pustina RUN apt-get install -y python Listing 3 FROM lukaspustina/docker_demo_python MAINTAINER Lukas Pustina ADD webserver.py /opt/webserver/webserver.py ADD run.sh /opt/webserver/run.sh EXPOSE 8080 VOLUME ["/logs"] Stapelbare Dateisysteme Bei stapelbaren Dateisystemen werden einzelne Schichten aufeinander gelegt. Jede dieser Schichten wird dabei getrennt erstellt. Bekannt ist dieses Verfahren von so genannten Live-CDs, bei denen ein Betriebssystem von einer CD gestartet wird. Dabei ist der Inhalt der CD unveränderbar. Um dennoch Dateien anlegen und löschen zu können, wird zunächst der Inhalt der CD als nur-lesbar gemountet und anschließend eine zweite, im Hauptspeicher gehaltene, schreibbare Schicht über die erste gelegt. So entsteht für den Benutzer die Illusion eines schreibbaren Dateisystems mit allen Dateien der CD. Das gleiche Prinzip verwendet Docker für Images. Im Gegensatz zu Images von virtuellen Maschinen werden Änderungen an Docker-Images Schicht für Schicht gespeichert. Auf diese Weise genügt es, nur diese Änderungen zu speichern, sodass Docker-Images kleiner ausfallen und wiederverwendbar sind. Abbildung 2 zeigt ein Beispiel dazu. Ausgehend von einem Debian-Basis-Image werden in zwei Schichten zunächst Emacs und Apache hinzugefügt. Dieses Dreischichten-Image kann anschließend als Container gestartet werden. Dazu wird auf die vorherigen Schichten eine weitere, schreibbare Schicht während der Laufzeit hinzugefügt. Möchte man nun lieber nginx anstatt Apache als Webserver benutzen, so kann man vom Image Emacs ausgehend, nginx an Stelle von Apache hinzufügen. Zusätzlich gespeichert wird in diesem Fall ausschließlich die neue Schicht nginx. Auf diese Weise kann man Images von anderen ableiten, ohne dass Daten repliziert werden. Dies ermöglicht flexible und platzsparende Ketten von Images, die leicht in Repositories gespeichert und mit anderen getauscht werden können. Wie Docker-Images konkret erstellt werden, wird im nächsten Abschnitt beschrieben. Zurzeit verwendet Docker standardmäßig AUFS [8] für Images. Jedoch kann es leicht auf BTRFS [9] umgestellt werden, das effizienter und schneller arbeitet, jedoch noch nicht von allen Distributionen von Haus aus unterstützt wird. Hundert virtuelle Maschinen Das Docker-Motto lautet Build, Ship and Run Any App, Anywhere. Dieses Motto soll uns auch als Leitsatz für einen tieferen Einstieg in Docker dienen. Als Beispielprojekt nehmen wir einen Python-Webserver, der in hundert System-Level-virtuellen Maschinen skaliert werden soll auf nur einem System. Die Containertechnologie macht es möglich. Der Grund: Es müssen eben nicht hundert Kernel in separaten Speicherbereichen gestartet werden, sondern der Kernel des Hostbetriebssystems wird wiederverwendet. Das vollständige Beispiel liegt unter [10] auf GitHub mit Installationsanleitung bereit. Installation Grundsätzlich läuft Docker nur unter Linux und kann auf den meisten aktuellen Distributionen installiert werden, bei Fragen zu konkreten Installationsschritten hilft https://docs.docker.com/installation/ weiter. 4 Entwickler Magazin Spezial Vol. 2 Software & Support Media GmbH

5 Für OS X und Windows-Benutzer ist den Beispielen auf GitHub eine Datei für Vagrant [11] beigefügt, die vollautomatisch eine virtuelle Maschine provisioniert, um Docker auch unter Windows und OS X ausprobieren zu können. Das Projekt boot2docker [12] für OS X und Windows nutzt einen ähnlichen, generelleren Ansatz und ermöglicht so, dass beliebige Docker-Container plattformunabhängig verwaltet und genutzt werden können. Es wird im Detail im Artikel Docker-Tools und Helferlein [6] vorgestellt. Die beschriebenen Beispiele funktionieren natürlich auch mit boot2docker. Vom Dockerfile zum Docker-Image Ein Dockerfile ist eine Art Bauanleitung für ein Docker-Image. Es enthält die einzelnen Schritte, die notwendig sind, um aus einem beliebigen Basis-Image ein neues Docker-Image zu erstellen. In unserem Beispiel nutzen wir zwei Dockerfiles. Das erste baut auf einem Ubuntu auf und fügt die Python Runtime hinzu. Das zweite Dockerfile installiert das Python-Webserverskript. Es entstehen also zwei Images. Diese Trennung ist sinnvoll, da Änderungen am Python-Skript lediglich das Erstellen des zweiten Images zur Folge haben, ohne dass erneut die Python Runtime installiert werden müsste. Listing 2 zeigt das erste Dockerfile. Das FROM-Kommando gibt das Basis-Image an. Es muss stets das erste Kommando in einem Dockerfile sein. Das zweite Kommando gibt den MAINTAINER an. Das dritte Kommando RUN ist ein Shell-Befehl, der auszuführen ist, während das Image gebaut wird. Hier wird über apt-get zunächst der Paketcache aktualisiert und anschließend Python installiert. Listing 3 ist etwas komplizierter und beschreibt, wie das zweite Image erstellt werden soll. Zunächst ist zu sehen, dass dieses Mal von einem anderen Basis-Image abgeleitet wird. Es handelt sich hierbei um unser erstes Image. Wie sich die Namen zusammensetzen, wird weiter unten erläutert. Zunächst werden zwei Dateien aus dem lokalen Verzeichnis ins Image mit dem Kommando ADD hinzugefügt. Dies ist zum einen der in Python geschriebene Webserver und zum anderen ein kurzes Shell-Skript, das den Webserver startet. Docker-Container dürfen grundsätzlich nur Netzwerkanfragen vom selben Host beantworten. Dies ist natürlich bei einem Webserver langweilig. Aus diesem Grund wird mithilfe des Kommandos EXPOSE der Port 8080 für externe Anfragen freigegeben. Nur zu freigegebenen Ports sind externe Verbindungen erlaubt. Da ein Docker-Container wie eine virtuelle Maschine ein eigenständiges System ist, kann man zur Laufzeit zunächst nicht ohne Weiteres in das System hineinschauen. Das Kommando VOLUME erzeugt innerhalb des Containers eine Art Mount Point, in den von außen, also vom Hostbetriebssystem, ein lokales Verzeichnis oder lokaler Mount Point eingebettet werden kann. In diesem konkreten Fall wird das Verzeichnis /logs des Containers als ein solches Volume gekennzeichnet. Beim Starten des Containers wird dann angegeben, welches lokale Verzeichnis in den Container eingeblendet werden soll. Hierbei kann ein lokales Verzeichnis auch an mehrere Container weitergeleitet werden. Docker-Images bauen: docker build Aus diesen Dockerfiles werden nun auf der Kommandozeile die beiden Docker-Images erzeugt: docker build --force-rm -t lukaspustina/docker_demo_python python > docker build --force-rm -t lukaspustina/docker_demo_webserver webserver Dieses Kommando baut das erste Docker-Image mithilfe des Dockerfiles im Verzeichnis python. Hierbei erzeugt jedes Kommando im Dockerfile ein neues Docker-Image mit einer eigenen, Git-ähnlichen ID. Jedes dieser Images wird in das lokale Repository committet und kann wiederverwendet werden. Dies kann natürlich bei vielen Dockerfiles und vielen Builds zu einer großen Menge von Docker-Images führen, die man normalerweise nicht benötigt. Der Parameter --rm führt deswegen nach erfolgreichem Erstellen des finalen Images dazu, dass alle Zwischen-Images (Intermediate Images) gelöscht werden. Mithilfe des Parameters --force-rm wird auch bei Fehlern anschließend bereinigt. Wie auch bei Git, kann man einem Commit bzw. einem Image einen Tag hinzufügen, über den es leichter als über die ID ansprechbar ist. Dies wird mit dem Parameter -t erreicht. Hierbei ist der Begriff Tag doppelt besetzt. Der Aufbau des Tagnamens folgt hier der GitHub-Konvention <User>/<Repository>:<Tag>. <Tag> wird üblicherweise für explizite Versionen wie oder latest verwendet. Mit den Befehlen docker images bzw. docker images --tree kann man sich die aktuellen Images im lokalen Repository als Liste oder als Abhängigkeitsbaum anzeigen lassen (Listing 4). Obwohl --tree ein sehr hilfreicher Parameter ist, wurde er von Docker, Inc. abgekündigt und wird in kommenden Versionen vermutlich verschwinden. In der Baumansicht kann man deutlich sehen, dass die tatsächliche Image-Größe nur um Änderungen wächst. Zum Bespiel wachsen die Images b22bde und 8f5a9cde5ae2 um genau die Dateigrößen des in Python geschriebenen Webservers und des kleinen Startskripts zum Vergleich lohnt ein Blick auf die ADD-Kommandos aus Listing 3. Der Kommandozeilenparameter -f / --filter kann eingesetzt werden, um die Ausgabe von docker images zu filtern und so einzuschränken. Änderungen Ein großer Vorteil der stapelbaren Images ist es, dass sich Änderungen nur auf einzelne Images und deren Kind-Container auswirken. Ändert man zum Beispiel Software & Support Media GmbH Entwickler Magazin Spezial Vol. 2 5

6 Listing 4 etwas am Quelltext des Python-Webservers und erstellt die beiden Images neu, so zeigt die Baumansicht nur darauf aufbauende Änderungen. Die ursprünglichen Images bleiben natürlich im lokalen Repository erhalten, verlieren jedoch ihr Tag, das zu den neuen Images überführt wird (Listing 5). > docker images lukaspustina/docker-demo_python latest ef489f0186e1 Less than a second ago MB lukaspustina/docker-demo_webserver latest b898a85622e4 Less than a second ago MB ubuntu quantal b750fe79269d 9 months ago MB > docker images --tree 27cf Size: MB (virtual MB) b750fe79269d Size: 77 B (virtual MB) Tags: ubuntu:quantal 7c b21 Size: 0 B (virtual MB) ef489f0186e1 Size: MB (virtual MB) Tags: lukaspustina/docker_demo_python:latest 90807ce05b64 Size: 0 B (virtual MB) d3822b811f4c Size: 0 B (virtual MB) b22bde Size: kb (virtual MB) 8f5a9cde5ae2 Size: 161 B (virtual MB) b898a85622e4 Size: 0 B (virtual MB) Tags: lukaspustina/docker_demo_webserver:latest Listing 5 > docker images --tree 27cf Size: MB (virtual MB) b750fe79269d Size: 77 B (virtual MB) Tags: ubuntu:quantal 7c b21 Size: 0 B (virtual MB) ef489f0186e1 Size: MB (virtual MB) Tags: lukaspustina/docker_demo_python:latest 90807ce05b64 Size: 0 B (virtual MB) 0e153dd3c547 Size: 0 B (virtual MB) 922d6e34d2d5 Size: kb (virtual MB) 4bfc3d0fb5b2 Size: 161 B (virtual MB) abac38e20f27 Size: 0 B (virtual MB) Tags: lukaspustina/docker_demo_webserver:latest d3822b811f4c Size: 0 B (virtual MB) b22bde Size: kb (virtual MB) 8f5a9cde5ae2 Size: 161 B (virtual MB) b898a85622e4 Size: 0 B (virtual MB) Container starten: docker run Das Starten eines Images instanziiert einen neuen Container und wird über das Kommando docker run ausgeführt: > docker run -d --cidfile=webserver.cid --name=webserver -v 'pwd'/logs:/logs lukaspustina/docker_demo_webserver:latest /opt/ webserver/run.sh Hier wird das letzte Image mit dem Tag lukaspustina/docker_demo_webserver gestartet. Also anstatt Image abac38e20f27 wird das aus dem zweiten Build erzeugte Image b898a85622e4 instanziiert. Die Container-ID ist eine Art PID für die Instanz und wird über den Parameter --cidfile in eine Datei geschrieben. Wie Images werden auch Container über IDs angesprochen. Um dies zu vereinfachen, kann man einem Container auch einen eindeutigen Namen über den Parameter --name geben. Dieser darf, solange der Container existiert, nicht wieder verwendet werden. Die letzten beiden Argumente geben an, welches Image genutzt und welches Shell- Kommando innerhalb des Containers gestartet werden soll. Hierbei ist wichtig zu beachten, dass Docker auf Prozessisolation basiert. Es wird also genau ein einziger Prozess gestartet. Volumes Im Dockerfile für den Webserver wird das Kommando VOLUME benutzt, um einen Mount Point für lokale Verzeichnisse zu erstellen, auf die der Container zugreifen können soll. Dieser Mount Point wird beim Starten des Containers mit dem Parameter -v, --volume belegt. Hier im Beispiel wird das lokale Unterverzeichnis logs an den Mount Point /logs im Container gebunden. Listing 6 CONTAINER ID IMAGE COMMAND PORTS NAMES 63120c lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh 8080/tcp webserver-10 5af293d56a0b lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh 8080/tcp webserver-9 a4a44f lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh 8080/tcp webserver-8 40b35ff10aa2 lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh 8080/tcp webserver-7 6e9127f8a113 lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh 8080/tcp webserver d2 lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh 8080/tcp webserver-5 e57def12fe25 lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh 8080/tcp webserver-4 c352eccb21de lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh 8080/tcp webserver-3 f65e lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh 8080/tcp webserver-2 111c936c2763 lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh 8080/tcp webserver-1 Mehr Container Mit einer einfachen for-schleife kann man auch mehrere Container starten: > for i in 'seq 1 100'; do docker run -d --cidfile=webserver-$i.cid --name=webserver- $i --volume 'pwd'/ logs:/logs lukaspustina/docker_demo_webserver:latest /opt/webserver/run.sh /logs; done Devices docker run ermöglicht es mithilfe des Parameters --device, Geräte vom Wirtssystem direkt in den Docker-Container zugreifbar 6 Entwickler Magazin Spezial Vol. 2 Software & Support Media GmbH

7 zu machen. So kann zum Beispiel eine Festplatte anstatt eines Volumes direkt in den Container eingeblendet werden: > docker run -d --cidfile=webserver-$i.cid --name=webserver-$i --device=/ dev/sdc:/dev/xvdc /opt/webserver/run.sh /logs Damit dieses Mapping funktioniert, muss der Prozess im Container natürlich die Festplatte entsprechend nach /logs mounten. Im Beispiel müsste man das Skript run. sh dafür anpassen. Umgebungsvariablen Ein weiterer, sehr hilfreicher Kommandozeilenparameter ist -e / --env, der es ermöglicht, Umgebungsvariablen im Container zu definieren, die der Prozess im Container auswerten kann. So können zum Beispiel Konfigurationsparameter zur Laufzeit übergeben werden. Docker nutzt einen ähnlichen Mechanismus, um die Kommunikation zwischen Docker-Containern zu erleichtern. Dieser Containerlink genannte Mechanismus wird im Artikel Docker Network Magic auf Seite 28 vorgestellt. Container anzeigen: docker ps Mit dem Kommando docker ps kann man sich die laufenden Container anzeigen lassen (Listing 6). Hier sieht man die ersten zehn Container mit den Namen webserver-* und ihre freigegebenen Ports Der Kommandozeilenparameter -f / --filter ermöglicht es, die Ausgabe von der docker ps -a nach Exit-Codes zu filtern; zum Beispiel docker ps -a -f exited=-1. Containerdetails: docker inspect Um einen der laufenden Webserver anzusprechen, ist neben dem Port auch die IP-Adresse des Containers notwendig. Diese kann man mithilfe des Kommandos docker inspect abfragen. Das Ergebnis dieses Kommandos ist ein JSON-Dokument mit allen Informationen über den Container. Mithilfe des Parameters -f kann man die Ausgabe auf einen Teil des Dokuments beschränken. Folgender Aufruf zeigt die IP-Adressen aller laufenden Container an: > docker ps -q xargs docker inspect -f '{{.NetworkSettings.IPAddress }}' Wie man sieht, bekommt jeder Container eine eigene IP- Adresse zugewiesen. Über die IP-Adressen und den Port 8080 kann man nun die Webserver abfragen. Ressourcenverbrauch Ein großer Vorteil von Docker bzw. der System-Level-Virtualisierung ist der im Vergleich zur Hypervisor-basierten Virtualisierung signifikant geringere Ressourcenverbrauch. Dies kann man sich konkret ansehen. Führt man das Kommando ps aux grep 'webserver' aus, werden die verbrauchten Ressourcen für die gestarteten Container ausgegeben (Listing 7). Es zeigt sich, dass allein die in Container gesperrten Prozesse Ressourcen verbrauchen. Für jeden Webserver sieht man einmal das Shell-Skript (/bin/bash/opt /webserver/run.sh /logs) und den darin gestarteten Python-Webserver (/usr/bin/python /opt/webserver/ webserver.py). Es entfällt der übliche Overhead für Betriebssystem und Systemprozesse bei der Nutzung von Hypervisor-basierten virtuellen Maschinen. Container anhalten und wieder starten: docker pause, unpause Docker-Container können ähnlich wie virtuelle Maschinen mit den Kommandos docker pause pausiert und docker unpause wieder gestartet werden. Dies ist insbesondere sinnvoll, wenn man den Zustand eines Containers mithilfe von docker commit sichern möchte. Auf diese Weise wird vermieden, dass während der Sicherung der Prozess im Container Änderungen Listing 7 PID %CPU %MEM RSS COMMAND /bin/bash /opt/webserver/run.sh /logs /usr/bin/python /opt/webserver/webserver.py /bin/bash /opt/webserver/run.sh /logs /usr/bin/python /opt/webserver/webserver.py /bin/bash /opt/webserver/run.sh /logs /usr/bin/python /opt/webserver/webserver.py /bin/bash /opt/webserver/run.sh /logs /usr/bin/python /opt/webserver/webserver.py /bin/bash /opt/webserver/run.sh /logs /usr/bin/python /opt/webserver/webserver.py /bin/bash /opt/webserver/run.sh /logs /usr/bin/python /opt/webserver/webserver.py /bin/bash /opt/webserver/run.sh /logs /usr/bin/python /opt/webserver/webserver.py /bin/bash /opt/webserver/run.sh /logs /usr/bin/python /opt/webserver/webserver.py /bin/bash /opt/webserver/run.sh /logs /usr/bin/python /opt/webserver/webserver.py /bin/bash /opt/webserver/run.sh /logs /usr/bin/python /opt/webserver/webserver.py Docker 1.3 Die nächste Version 1.3 von Docker, die nach Redaktionsschluss veröffentlicht wurde, enthält drei erwähnenswerte neue Funktionen. docker exec erlaubt es, einen weiteren Prozess in einem laufenden Container zu erzeugen. So kann man zum Beispiel eine Shell starten und Einstellungen sowie Logfiles prüfen. Mit docker create / start kann docker run in zwei separate Schritte aufgeteilt werden, um den Lebenszyklus von Containern flexibel zu beeinflussen. Schließlich ermöglicht der neue Parameter docker run --security-opts SELinux- und AppArmor-Profile für Container zu setzen. Mehr Details finden sich in den Release Notes von Docker 1.3 [13]. Software & Support Media GmbH Entwickler Magazin Spezial Vol. 2 7

8 vornimmt und die Sicherung somit inkonsistent wird. docker build nutzt diesen Mechanismus intern. Container stoppen: docker stop, kill, commit, remove Die Kommandos docker stop und docker kill beenden einen Container mit den Signalen SIGTERM bzw. SIG- KILL. Das Beenden eines Containers führt lediglich zum Stoppen der Ausführung. So wie eine gestoppte virtuelle Maschine existiert der Container danach weiter, jedoch wird er nicht mehr ausgeführt. Man kann sich nun entscheiden, ob etwaige Änderungen am Image gespeichert oder der Container tatsächlich gelöscht werden soll. docker commit speichert die Änderungen am Image als weitere Schicht und docker rm löscht einen Container. Ausblick Docker bietet noch viel mehr Funktionen zum Erstellen und Pflegen von System-Level-virtuellen Maschinen. Insbesondere die Möglichkeit, Images in einer zentralen Registry intern für Kollegen oder sogar öffentlich über den Docker Hub anzubieten, erlaubt eine einfache und effektive Wiederverwendung von Docker-Images. Bei CenterDevice setzen wir Docker sowohl in der Entwicklung als auch der Produktion ein. Da ein Docker-Image unabhängig vom Hostbetriebssystem ist, kann dasselbe Image für die Entwicklung auf dem Entwicklernotebook als auch in der Produktion auf einem Server eingesetzt werden. Docker erleichtert so DevOps, indem Entwickler ein Docker-Image bauen, wie sie es benötigen und Administratoren Container als unabhängige Dienste auf den Produktivservern starten können. In den folgenden Artikeln werden die Details sowie die Einsatzszenarios von Docker genauer vorgestellt und gezeigt, wie man Docker für die tägliche Arbeit als Entwickler und Administrator einsetzen kann viel Spaß beim Lesen! Dr. Lukas Pustina hat langjährige Erfahrung in der Entwicklung und dem Betrieb von verteilten Systemen. Er hat dabei stets ein Auge auf neue Technologien in diesem Umfeld. Zurzeit arbeitet er als Leiter des Bereichs Infrastruktur bei der CenterDevice GmbH an der Realisierung einer hochskalierbaren Cloud-Software. Links & Literatur [1] https://www.docker.io [2] https://github.com/lukaspustina [3] https://linuxcontainers.org [4] https://github.com/docker/libcontainer [5] https://hub.docker.com/u/lukaspustina/ [6] [7] [8] [9] https://btrfs.wiki.kernel.org/index.php/main_page [10] https://github.com/lukaspustina/docker-demo [11] [12] https://github.com/boot2docker/boot2docker [13] https://blog.docker.com/2014/10/docker-1-3-signedimages-process-injection-security-options-mac-shareddirectories/ codecentric AG Tel: +49 (0) Kölner Landstraße 11 Fax: +49 (0) blog.codecentric.de Düsseldorf 8 Entwickler Magazin Spezial Vol. 2 Software & Support Media GmbH

Continuous Delivery mit Docker

Continuous Delivery mit Docker Continuous Delivery mit Docker Berlin Expert Days 2014 Dr. Halil-Cem Gürsoy adesso AG 04.04.14 http://www.flickr.com/photos/jpmartineau/501718334/ Definition und Provisionierung eines Linux-Containers

Mehr

Sonderdruck für. www.codecentric.de. Software & Support Media GmbH

Sonderdruck für. www.codecentric.de. Software & Support Media GmbH Sonderdruck für www.codecentric.de Software & Support Media GmbH 1 Hilfreiche Werkzeuge aus dem Docker-Universum Tools und Helferlein Die Popularität von Docker zeigt sich auch in der schnell wachsenden

Mehr

docker.io @ CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln, 04.08.2014

docker.io @ CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln, 04.08.2014 docker.io @ CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln, 04.08.2014 Agenda 1. Was ist Docker? 2. Was sind Container? 3. Warum Docker? 4. Architektur 5. Praxis 6. Docker unter CentOS

Mehr

Continuous Delivery in der Praxis

Continuous Delivery in der Praxis Dr. Halil-Cem Gürsoy @hgutwit! adesso AG Continuous Delivery in der Praxis Über mich Principal Architect @ adesso AG seit 15 Jahre Software-Entwicklung > davor in wissenschaftlichem Umfeld Verteilte Enterprise-Systeme

Mehr

docker.io Secure And Portable Containers Made Easy Jürgen Brunk München, 30.04.2014

docker.io Secure And Portable Containers Made Easy Jürgen Brunk München, 30.04.2014 Secure And Portable Containers Made Easy Jürgen Brunk München, 30.04.2014 Agenda 1. Was ist Docker? 2. Was sind Container? 3. Warum Docker? 4. Architektur 5. Praxis 6. Docker unter Ubuntu installieren

Mehr

The linux container engine. Peter Daum

The linux container engine. Peter Daum 0 The linux container engine Peter Daum Über mich Peter Daum Entwickler seit 13 Jahren Java Developer @ tyntec Java EE / Spring im OSS / BSS Twitter - @MrPaeddah Blog - www.coders-kitchen.com Agenda Docker?!

Mehr

Docker für Entwickler

Docker für Entwickler Docker für Entwickler Dr. Roland Huß, ConSol* Software GmbH Seamless DevOps Day, 16. April 2015 Agenda Docker Crash Intro Docker für Java Entwickler Integrationstests Anwendungs-Paketierung docker-maven-plugin

Mehr

Continuous Delivery in der Praxis

Continuous Delivery in der Praxis Dr. Halil-Cem Gürsoy @hgutwit adesso AG Continuous Delivery in der Praxis Über mich Principal Architect @ adesso AG seit 15 Jahre Software-Entwicklung > davor in wissenschaftlichem Umfeld Verteilte Enterprise-Systeme

Mehr

Dr. Roland Huß ConSol* Docker für Java Entwickler

Dr. Roland Huß ConSol* Docker für Java Entwickler Dr. Roland Huß ConSol* Docker für Java Entwickler Agenda Docker Crash Intro Integrationstests Build Integration Applikations-Deployment docker-maven-plugin Maven Plugin Shootout Demo Roland Huß Java seit

Mehr

Image: Mehrere Ebenen Nicht veränderbar -> neues abgeleitetes Image anlegen. Änderungen zur Laufzeit eines Containers werden im Container gespeichert.

Image: Mehrere Ebenen Nicht veränderbar -> neues abgeleitetes Image anlegen. Änderungen zur Laufzeit eines Containers werden im Container gespeichert. 1 2 3 4 Image: Mehrere Ebenen Nicht veränderbar -> neues abgeleitetes Image anlegen. Änderungen zur Laufzeit eines Containers werden im Container gespeichert. Container: System Container mit init, inetd,

Mehr

cs106 Informatiklabor Teil 1: Java-Installation

cs106 Informatiklabor Teil 1: Java-Installation Herbstsemester 2009 cs106 Informatiklabor Teil 1: Java-Installation Florian Zeller Vorgehen und Ziele Wöchentlich eine Übung Unterstützte Bearbeitung während den Übungsstunden Austausch mit älteren Semestern

Mehr

KURZANLEITUNG CLOUD BLOCK STORAGE

KURZANLEITUNG CLOUD BLOCK STORAGE KURZANLEITUNG CLOUD BLOCK STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung......Seite 03 2. Anlegen eines dauerhaften Block Storage...Seite 04 3. Hinzufügen von Block Storage

Mehr

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05.

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05. IT Engineering Continuous Delivery Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet Alexander Pacnik Karlsruhe, 20.05.2014 Einleitung... worum es in diesem Vortrag geht Ziele Continuous

Mehr

Securepoint Security Systems

Securepoint Security Systems HowTo: Virtuelle Maschine in VMware für eine Securepoint Firewall einrichten Securepoint Security Systems Version 2007nx Release 3 Inhalt 1 VMware Server Console installieren... 4 2 VMware Server Console

Mehr

Virtualisierung. Zinching Dang. 12. August 2015

Virtualisierung. Zinching Dang. 12. August 2015 Virtualisierung Zinching Dang 12. August 2015 1 Einführung Virtualisierung: Aufteilung physikalischer Ressourcen in mehrere virtuelle Beispiel: CPUs, Festplatten, RAM, Netzwerkkarten effizientere Nutzung

Mehr

Tensei-Data Demoleitfaden. Jens Grassel, Andre Schütz

Tensei-Data Demoleitfaden. Jens Grassel, Andre Schütz Tensei-Data Demoleitfaden Jens Grassel, Andre Schütz Inhaltsverzeichnis 1. Installation der Demoversion............................................................... 1 1.1. Windows.............................................................................

Mehr

Acronis Backup & Recovery 10 Server for Windows. Installationsanleitung

Acronis Backup & Recovery 10 Server for Windows. Installationsanleitung Acronis Backup & Recovery 10 Server for Windows Installationsanleitung Inhaltsverzeichnis 1. Installation von Acronis Backup & Recovery 10... 3 1.1. Acronis Backup & Recovery 10-Komponenten... 3 1.1.1.

Mehr

Apache Subversion (SVN)

Apache Subversion (SVN) Apache Subversion (SVN) Datamining und Sequenzanalyse Marvin Meusel, Sascha Winter 18.10.2013 Apache Subversion (SVN) Datamining und Sequenzanalyse Marvin Meusel, Sascha Winter 18.10.2013 git Datamining

Mehr

Übung 4: Schreiben eines Shell-Skripts

Übung 4: Schreiben eines Shell-Skripts Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende

Mehr

IBM SPSS Statistics für Linux-Installationsanweisungen (Netzwerklizenz)

IBM SPSS Statistics für Linux-Installationsanweisungen (Netzwerklizenz) IBM SPSS Statistics für Linux-Installationsanweisungen (Netzwerklizenz) Die folgenden Anweisungen gelten für die Installation von IBM SPSS Statistics Version 20 mit einernetzwerklizenz. Dieses Dokument

Mehr

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc

Mehr

4 Planung von Anwendungsund

4 Planung von Anwendungsund Einführung 4 Planung von Anwendungsund Datenbereitstellung Prüfungsanforderungen von Microsoft: Planning Application and Data Provisioning o Provision applications o Provision data Lernziele: Anwendungen

Mehr

Managed VPSv3 Was ist neu?

Managed VPSv3 Was ist neu? Managed VPSv3 Was ist neu? Copyright 2006 VERIO Europe Seite 1 1 EINFÜHRUNG 3 1.1 Inhalt 3 2 WAS IST NEU? 4 2.1 Speicherplatz 4 2.2 Betriebssystem 4 2.3 Dateisystem 4 2.4 Wichtige Services 5 2.5 Programme

Mehr

Subversion. Einstieg in die. Versionskontrolle

Subversion. Einstieg in die. Versionskontrolle Versionskontrolle mit Subversion Einstieg in die Versionskontrolle Dipl.Ing.(FH) K. H. Marbaise Agenda Wozu Versionskontrolle? Was leistet Versionskontrolle? Historie zu Subversion Projekt Handling Installation

Mehr

Docker. Lass mal containern Julian mino GPN15-04.06.2015

Docker. Lass mal containern Julian mino GPN15-04.06.2015 Lass mal containern Julian mino GPN15-04.06.2015 Julian mino! Interessen: Netzwerke # Karlsruhe Hardware $ gpn15@lab10.de Cocktails " twitter.com/julianklinck Hacking Musik- und Lichttechnik 2 Julian mino!

Mehr

Enigma2 Plugin Entwicklung mit Eclipse

Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse 1/15 Inhaltsverzeichnis 1 ÜBER... 3 2 INSTALLATION... 4 2.1 INSTALLATION VON ECLIPSE... 4 2.2 INSTALLATION VON PYDEV... 4 3

Mehr

Cloud-Plattform: Appscale Hochschule Mannheim

Cloud-Plattform: Appscale Hochschule Mannheim Florian Weispfenning Cloud-Computing Seminar Hochschule Mannheim WS0910 1/28 Cloud-Plattform: Appscale Hochschule Mannheim Florian Weispfenning Fakultät für Informatik Hochschule Mannheim florian.weispfenning@stud.hs-mannheim.de

Mehr

Master-Boot-Record sichern

Master-Boot-Record sichern Master-Boot-Record sichern Allgemeines Mit dem Master-Boot-Record (MBR) kommt der normale Computernutzer nur selten in Kontakt, eigentlich nur zweimal. Bei der Installation von Linux wird in der Regel

Mehr

[Geben Sie Text ein] ISCSI Targets mit der Software FreeNAS einrichten

[Geben Sie Text ein] ISCSI Targets mit der Software FreeNAS einrichten [Geben Sie Text ein] ISCSI Targets mit der Software FreeNAS einrichten ISCSI Targets mit der Software FreeNAS einrichten Inhalt FreeNAS Server Vorbereitung... 2 Virtuelle Maschine einrichten... 3 FreeNAS

Mehr

egenix PyRun Python Runtime in einer einzigen 12MB Datei FrOSCon 2012 Sankt Augustin Marc-André Lemburg EGENIX.COM Software GmbH Langenfeld, Germany

egenix PyRun Python Runtime in einer einzigen 12MB Datei FrOSCon 2012 Sankt Augustin Marc-André Lemburg EGENIX.COM Software GmbH Langenfeld, Germany Python Runtime in einer einzigen 12MB Datei FrOSCon 2012 Sankt Augustin Marc-André Lemburg EGENIX.COM Software GmbH Langenfeld, Germany Marc-André Lemburg Geschäftsführer der egenix.com GmbH Mehr als 20

Mehr

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München Time CGI Version 1.5 Stand 04.12.2013 TimeMachine Dokument: time.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor Version Datum Kommentar

Mehr

Virtualisierung mit Virtualbox

Virtualisierung mit Virtualbox Virtualisierung mit Virtualbox Dies ist kein Howto im herkömmlichen Sinne. Genaue Anleitungen für Virtualbox gibt es im Intenet genug. Zu empfehlen ist auch das jeweils aktuelle Handbuch von Virtualbox

Mehr

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches Verwendung der bereitgestellten Virtuellen Maschinen»Einrichten einer Virtuellen Maschine mittels VirtualBox sowie Zugriff auf

Mehr

Installation Guide. Installation Guide. Installationsanleitung für die anaptecs JEAF Plattform. Version 1.2 Letzte Änderung 05.

Installation Guide. Installation Guide. Installationsanleitung für die anaptecs JEAF Plattform. Version 1.2 Letzte Änderung 05. Installation Guide Thema Version 1.2 Letzte Änderung 05. Dezember 2011 Status Installationsanleitung für die anaptecs JEAF Plattform Freigegeben Inhaltsverzeichnis 1 Motivation... 4 1.1 Abgrenzungen...

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

Installationsanleitung Tivoli Storage Manager für Mac OS

Installationsanleitung Tivoli Storage Manager für Mac OS 11. März 2009, Version 1.0 Installationsanleitung für Mac OS X Verwaltungsdirektion Informatikdienste Installationsanleitung für Mac OS Inhaltsverzeichnis...1 Installation... 1 Voraussetzungen...1 Version

Mehr

Verteilte Versionskontrolle mit GIT. 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Verteilte Versionskontrolle mit GIT. 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln Verteilte Versionskontrolle mit GIT 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln 1 über mich 32 Jahre alt Softwareentwickler bei der Firma GreenPocket in Köln Java EE Entwickler und Rails

Mehr

Hardware- und Software-Anforderungen IBeeS.ERP

Hardware- und Software-Anforderungen IBeeS.ERP Hardware- und Software-Anforderungen IBeeS.ERP IBeeS GmbH Stand 08.2015 www.ibees.de Seite 1 von 8 Inhalt 1 Hardware-Anforderungen für eine IBeeS.ERP - Applikation... 3 1.1 Server... 3 1.1.1 Allgemeines

Mehr

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim, 10.11.2014

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim, 10.11.2014 Entwicklungsumgebungen Packer, Vagrant, Puppet Alexander Pacnik Mannheim, 10.11.2014 inovex... über inovex und den Referenten 2 Entwicklungsumgebungen... Übersicht Einführung Packer Konfiguration Packer

Mehr

Installationshandbuch. WeLearn Release 2.3.0. für Linux

Installationshandbuch. WeLearn Release 2.3.0. für Linux Installationshandbuch WeLearn Release 2.3.0 für Linux Oktober 2005 Das WeLearn-Team wünscht Ihnen viel Spaß und Erfolg im Arbeiten mit WeLearn. Bei Fragen und Anregungen können Sie uns unter info@welearn.at

Mehr

Installationsanleitung für DoRIS unter Linux Inhaltsverzeichnis

Installationsanleitung für DoRIS unter Linux Inhaltsverzeichnis Installationsanleitung für DoRIS unter Linux Seite 1 Installationsanleitung für DoRIS unter Linux Inhaltsverzeichnis Installationsanleitung für DoRIS unter Linux... 1 Vorbemerkungen... 1 Benötigte Komponenten

Mehr

Installationsanweisung für sc_cube unter Windows

Installationsanweisung für sc_cube unter Windows Installationsanweisung für sc_cube unter Windows Thema: Installationsanweisung für sc_cube unter Windows Datum: 17.12.2012 Seitenzahl: 16 Versionsnummer: sc_cube v12.51.1 Autoren: sc synergy GmbH support.sccube@scsynergy.com

Mehr

Anleitung Gen2VDR Installationsanleitung für REYCOM. Gen2VDR Installationsanleitung für REYCOM

Anleitung Gen2VDR Installationsanleitung für REYCOM. Gen2VDR Installationsanleitung für REYCOM 1 Gen2VDR Installationsanleitung für REYCOM 2 Anleitung Gen2VDR Installationsanleitung für REYCOM Inhaltsverzeichnis 1 Allgemein... 3 1.1 Systemvoraussetzungen... 3 2 Installation... 4 2.1 Download der

Mehr

KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE

KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung...Seite 03 2. Einrichtung des Systems...Seite 04 3. Erzeugen eines Backup-Skripts...Seite

Mehr

Linux im Studium. Serbest Hammade / Resh, Christian Sturm. Do, 15. November 2012

Linux im Studium. Serbest Hammade / Resh, Christian Sturm. Do, 15. November 2012 Linux im Studium Serbest Hammade / Resh, Christian Sturm Do, 15. November 2012 Linux Aufbau von Linux Distributionen Grafische Desktopumgebungen HFU & Linux Instant Messaging via Jabber (XMPP) HFU & Jabber

Mehr

http://bcloud.brennercom.it/de/brennercom-b-cloud/applikationen/26-0.html

http://bcloud.brennercom.it/de/brennercom-b-cloud/applikationen/26-0.html b.backup Handbuch Windows Dieser Abschnitt beschreibt die grundlegenden Funktionen des Backup Client und die Vorgehensweise für die Installation und Aktivierung. Außerdem wird erläutert, wie man eine Datensicherung

Mehr

Torsten Flatter inovex GmbH. "Git.NET" gibt's nicht?

Torsten Flatter inovex GmbH. Git.NET gibt's nicht? Torsten Flatter inovex GmbH "Git.NET" gibt's nicht? Vorstellung Torsten Flatter inovex GmbH.NET / C# seit 2004 VSS, CVS, SVN, TFS, hq, git Enterprise-Umfeld Agenda Überblick Grundlagen Einsatzbereiche

Mehr

Knottenwäldchen Software

Knottenwäldchen Software Knottenwäldchen Software Installationsanleitung für die netzbasierte Lösung Knottenwäldchen Software März.2011 Knottenwäldchen Software Seite 2 1 Inhalt 1 Inhalt... 2 2 Übersicht... 3 3 Installation...

Mehr

1 Installationen. 1.1 Installationen unter Windows

1 Installationen. 1.1 Installationen unter Windows 1 Installationen Dieses Kapitel beschreibt die Installationen, die für die Nutzung von PHP und MySQL unter Windows, unter Ubuntu Linux und auf einem Mac mit OS X notwendig sind. 1.1 Installationen unter

Mehr

RIWA NetUpdater Tool für automatische Daten- und Softwareupdates

RIWA NetUpdater Tool für automatische Daten- und Softwareupdates RIWA NetUpdater Tool für automatische Daten- und Softwareupdates Grundlegendes... 1 Ausführbare Dateien und Betriebsmodi... 2 netupdater.exe... 2 netstart.exe... 2 netconfig.exe... 2 nethash.exe... 2 Verzeichnisse...

Mehr

Installation von Typo3 CMS

Installation von Typo3 CMS Installation von Typo3 CMS TYPO3 Version 6.2.x unter Windows Eigenen lokalen Webserver mit XAMPP installieren Für die Installation von Typo3 wird eine passende Systemumgebung benötig. Diese besteht aus

Mehr

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Einführung in git Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Ben Oswald 27. April 2014 Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist git?..................................... 1 1.2 Warum sollten

Mehr

Ubuntu und DNS-325/-320: Datenzugriff über NFS

Ubuntu und DNS-325/-320: Datenzugriff über NFS Ubuntu und DNS-325/-320: Datenzugriff über NFS Inhalt Datenzugriff über NFS mit Ubuntu... 2 Allgemeine Informationen 2 Übersicht der einzelnen Einrichtungsschritte: 2 Ausführliche Vorgehensweise 2 1) Am

Mehr

Dezentrale Versionsverwaltung

Dezentrale Versionsverwaltung Dezentrale Versionsverwaltung mit GIT with that guy 14.08.2012 Lars Kumbier 1 Versionsverwaltung? 14.08.2012 Lars Kumbier 2 Versionsverwaltung? Speichern unterschiedlicher Entwicklungsschritte (oder Versionen)

Mehr

Seminar. Bachelor Wirtschaftsinformatik

Seminar. Bachelor Wirtschaftsinformatik Seminar Bachelor Wirtschaftsinformatik Generalthema: Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Versionierung von Java-Anwendungen mit Git Christian Ondreka Versionsverwaltung mit

Mehr

Betriebssystem-basierte Virtualisierung

Betriebssystem-basierte Virtualisierung Betriebssystem-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Betriebssystem-basierte Virtualisierung

Mehr

PVFS (Parallel Virtual File System)

PVFS (Parallel Virtual File System) Management grosser Datenmengen PVFS (Parallel Virtual File System) Thorsten Schütt thorsten.schuett@zib.de Management grosser Datenmengen p.1/?? Inhalt Einführung in verteilte Dateisysteme Architektur

Mehr

Uberlegungen Einsatzgebiete Virtualisierungslosungen Fazit Hardwarevirtualisierung. Virtualisierung. Christian Voshage. 11.

Uberlegungen Einsatzgebiete Virtualisierungslosungen Fazit Hardwarevirtualisierung. Virtualisierung. Christian Voshage. 11. slosungen 11. Mai 2009 Inhaltsverzeichnis Uberlegungen slosungen 1 Uberlegungen Grunduberlegungen Vorteile Hardware-Emulation Nachteile 2 Servervirtualisierung Clientvirtualisierung 3 slosungen 4 5 Uberlegungen

Mehr

Windows SharePoint Services als gemeinsamen Dateispeicher einrichten

Windows SharePoint Services als gemeinsamen Dateispeicher einrichten Windows SharePoint Services als gemeinsamen Dateispeicher einrichten (Engl. Originaltitel: Setting up Windows SharePoint Services as a Collaborative File Store) Dustin Friesenhahn Veröffentlicht: August

Mehr

1 Linux-Befehlsübersicht

1 Linux-Befehlsübersicht 1 Linux-Befehlsübersicht 1.1 Dateiverwaltung ls Verzeichnisinhalt anzeigen (list) ls -l ausführliche Darstellung ls -a auch versteckte Dateien auisten ls -h verwende besser lesbare Einheiten (humanreadable,

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Andreas Teuchert 27./28. Juni 2012 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID)

Mehr

git & git-flow Jens Sandmann 14.12.2013 Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31

git & git-flow Jens Sandmann 14.12.2013 Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 git & git-flow Jens Sandmann Warpzone Münster e.v. 14.12.2013 Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 Überblick 1 git Versionskontrolle Allgemein VCS mit git 2 git flow 3 git nutzen 4 Anhang

Mehr

UC4 Rapid Automation Handbuch für den Hyper-V Agent

UC4 Rapid Automation Handbuch für den Hyper-V Agent UC4 Rapid Automation Handbuch für den Hyper-V Agent UC4 Software, Inc. UC4: Rapid Automation Handbuch für den Hyper-V Agent Von Jack Ireton Dokumentennummer: RAHV-062011-de *** Copyright UC4 und das UC4-Logo

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Benjamin Eberle 22. Januar 2015 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID) jeder

Mehr

LOGOS Server. Version 2.40. Installationsanleitung für Linux

LOGOS Server. Version 2.40. Installationsanleitung für Linux LOGOS Server Version 2.40 Installationsanleitung für Linux Inhalt 1. Einleitung...2 2. Systemadministration...2 2.1 Systemvoraussetzungen... 2 2.1. LOGOS installieren... 2 2.2. Aktualisierung einer vorhandenen

Mehr

Inhaltsverzeichnis. Teil 1 Node.js... 1

Inhaltsverzeichnis. Teil 1 Node.js... 1 xiii Teil 1 Node.js... 1 1 Was ist Node.js? 3 1.1 Die Zeitalter des Webs................................... 3 1.1.1 1990 bis 2000: Das Web 1.0....................... 3 1.1.2 2000 bis 2010: Das Web 2.0.......................

Mehr

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt TimePunch TimePunch Command Benutzerhandbuch 14.08.2013 TimePunch KG, Wormser Str. 37, 68642 Bürstadt Dokumenten Information: Dokumenten-Name Benutzerhandbuch, TimePunch Command Revisions-Nummer 37 Gespeichert

Mehr

Wenn XP-Programme in Windows 7 nicht laufen, muss man eine XP-Umgebung bereit stellen. Wie das geht, zeigt dieser Artikel.

Wenn XP-Programme in Windows 7 nicht laufen, muss man eine XP-Umgebung bereit stellen. Wie das geht, zeigt dieser Artikel. XP-Programme in Windows 7 mittels VirtualBox Wenn XP-Programme in Windows 7 nicht laufen, muss man eine XP-Umgebung bereit stellen. Wie das geht, zeigt dieser Artikel. Inhalt Was ist eine virtuelle Maschine

Mehr

User Mode Linux. Sven Wölfel 15. April 2005

User Mode Linux. Sven Wölfel 15. April 2005 User Mode Linux Sven Wölfel 15. April 2005 Inhalt Was ist UML? Wofür kann man UML benutzen? Funktionsweise von UML Installation von UML Netzwerk unter UML einrichten Quellen 2 Was ist UML? I User Mode

Mehr

Documentation. OTRS Appliance Installationshandbuch. Build Date:

Documentation. OTRS Appliance Installationshandbuch. Build Date: Documentation OTRS Appliance Installationshandbuch Build Date: 10.12.2014 OTRS Appliance Installationshandbuch Copyright 2001-2014 OTRS AG Dieses Werk ist geistiges Eigentum der OTRS AG. Es darf als Ganzes

Mehr

Übungen zur Vorlesung. Betriebssysteme

Übungen zur Vorlesung. Betriebssysteme Übungen zur Vorlesung Betriebssysteme Wintersemester 2015 Patrick Kendzo ppkendzo@gmail.com Inhalt Virtuelle Maschine -Eine kleine Einführung Damn Small Linux (DSL) Embedded Eine Einführung Aufgabe 1:

Mehr

Open Source. Hendrik Ebbers 2015

Open Source. Hendrik Ebbers 2015 Open Source Hendrik Ebbers 2015 Open Source About me Hendrik Ebbers Lead of JUG Dortmund Java Architect @ Canoo Engineering AG JavaOne Rockstar, Java Expert Group Member Speaker, blogger & author Engineering

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

lp4you ein und startet den Webserver neu, so kann man den Webserver nur noch lokal ansprechen.

lp4you ein und startet den Webserver neu, so kann man den Webserver nur noch lokal ansprechen. lp4you Ubuntu 10.04 LTS Lucid Lynx Apache 2.2.14-5unbuntu8 installiert wird: - apache2 Konfiguration Der Apache Webserver lässt sich durch Editieren der Dateien - /etc/apache2/apache2.conf - /etc/apache2/ports.conf

Mehr

SX3 PC Software rev. 0.99c

SX3 PC Software rev. 0.99c SX3 PC Software rev. 0.99c SX3 ist ein Programm zur Steuerung einer Selectrix Digitalzentrale unter Linux bzw. Windows. Mit SX3 haben Sie die Möglichkeit Selectrix -Loks zu fahren, Weichen zu Schalten

Mehr

Material zum Grundlagenpraktikum ITS. eine kleine Linux-Befehlsreferenz. Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1.

Material zum Grundlagenpraktikum ITS. eine kleine Linux-Befehlsreferenz. Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1. Material zum Grundlagenpraktikum ITS eine kleine Linux-Befehlsreferenz Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1.0 Lehrstuhl für Netz- und Datensicherheit Ruhr-Universität Bochum

Mehr

ab Redirector-Version 2.14

ab Redirector-Version 2.14 Installation: FilterSurf ab Redirector-Version 2.14 Hier werden nun die Schritte erläutert, die nacheinander zu durchlaufen sind, um einen der zentralen FilterSurf -Server verwenden zu können. Die Installationsschritte

Mehr

Praktikum RO1 Einführung Linux / Ubuntu / Bash

Praktikum RO1 Einführung Linux / Ubuntu / Bash Praktikum RO1 Einführung Linux / Ubuntu / Bash Ubuntu Ubuntu 10.04 läuft als Gastsystem auf der virtuellen Maschine Virtuel Box. Das vorbereitete Ubuntu liegt auf der Festplatte Daten_1 ( \D:\VM'sUbuntu_10.04

Mehr

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit 1 Hochverfügbarkeit Lernziele: Network Load Balancing (NLB) Failover-Servercluster Verwalten der Failover Cluster Rolle Arbeiten mit virtuellen Maschinen Prüfungsanforderungen von Microsoft: Configure

Mehr

Aufbau einer Testumgebung mit VMware Server

Aufbau einer Testumgebung mit VMware Server Aufbau einer Testumgebung mit VMware Server 1. Download des kostenlosen VMware Servers / Registrierung... 2 2. Installation der Software... 2 2.1 VMware Server Windows client package... 3 3. Einrichten

Mehr

Backuptest mit Oracle RMAN

Backuptest mit Oracle RMAN Backuptest mit Oracle RMAN Ein Product Whitepaper der Firma ASPICON www.aspion.de Bitte nutzen Sie auch unser Antwortfax auf der letzten Seite. Vielen Dank. Inhaltsverzeichnis 1. Vorbereitungen...2 2.

Mehr

Docker Security. Architektur und Sicherheitsfunktionen von Containervirtualisierungen

Docker Security. Architektur und Sicherheitsfunktionen von Containervirtualisierungen Docker Security Architektur und Sicherheitsfunktionen von Containervirtualisierungen Nils Magnus GUUG-Frühjahrsfachgespräch 2015, Stuttgart, 26. März 2015 Jump on the Bandwagon Docker ist Hype! Doch worum

Mehr

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8 Byte-Taxi Bedienungsanleitung Seite 1 von 8 Inhaltsverzeichnis 1. Beschreibung 3 2. Systemvoraussetzungen 4 3. Installationsanleitung 5 4. Bedienung 6 5. Infos & Kontakt 8 Seite 2 von 8 1. Beschreibung

Mehr

2. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt.

2. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt. Arbeitsblätter Der Windows Small Business Server 2011 MCTS Trainer Vorbereitung zur MCTS Prüfung 70 169 Aufgaben Kapitel 1 1. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt.

Mehr

VMware Installation der bestmeetingroom TRIALVersion. PreVersion built 1.01 Stand: 21.11.2006

VMware Installation der bestmeetingroom TRIALVersion. PreVersion built 1.01 Stand: 21.11.2006 VMware Installation der bestmeetingroom TRIALVersion PreVersion built 1.01 Stand: 21.11.2006 bestmeetingroom VMware Install Seite 2 Voraussetzungen: Bitte beachten Sie, dass Sie für die Installation des

Mehr

MVB3. Einrichten eines Servers für MVB3 ab Version 3.5. Admin-Dokumentation. Inhalt V3.05.001

MVB3. Einrichten eines Servers für MVB3 ab Version 3.5. Admin-Dokumentation. Inhalt V3.05.001 V3.05.001 MVB3 Admin-Dokumentation Einrichten eines Servers für MVB3 ab Version 3.5 Inhalt Organisatorische Voraussetzungen... 1 Technische Voraussetzungen... 1 Konfiguration des Servers... 1 1. Komponenten

Mehr

4 Aufruf des Servers, Kommandozeilen-Optionen

4 Aufruf des Servers, Kommandozeilen-Optionen 4 Aufruf des Servers, Kommandozeilen-Optionen 4.1 Einführung In diesem Abschnitt lernen Sie verschiedene Methoden zum Start des Apache-Servers, einige der wichtigsten Kommandozeilen-Optionen und Methoden

Mehr

Tutorial. zur Einbindung einer Seafile Bibliothek in das Linux-Dateisystem. (gültig für 'Dual Cubie Homeserver SD-Card Images' V3n u.

Tutorial. zur Einbindung einer Seafile Bibliothek in das Linux-Dateisystem. (gültig für 'Dual Cubie Homeserver SD-Card Images' V3n u. Tutorial zur Einbindung einer Seafile Bibliothek (gültig für 'Dual Cubie Homeserver SD-Card Images' V3n u. V4n) 2015 Stefan W. Lambert kontakt@stefanius.de Copyright-Hinweis Dieses Dokument obliegt den

Mehr

Virtualisierung Linux-Kurs der Unix-AG

Virtualisierung Linux-Kurs der Unix-AG Virtualisierung Linux-Kurs der Unix-AG Zinching Dang 12. August 2015 Einführung Virtualisierung: Aufteilung physikalischer Ressourcen in mehrere virtuelle Beispiel: CPUs, Festplatten, RAM, Netzwerkkarten

Mehr

Anlegen von Entwicklungsumgebungen per Vagrant & Chef

Anlegen von Entwicklungsumgebungen per Vagrant & Chef 13. August 2015 Inhalt 1 Überblick Vagrant 2 Vagrant Download unter https://www.vagrantup.com/ Konguration per Vagrantle Listing 1: Vagrantle Vagrant. configure ("2") do config config. vm. box = " vivid64

Mehr

Installationsanleitung Mehrplatz-/Netzwerk Hypo Office Banking

Installationsanleitung Mehrplatz-/Netzwerk Hypo Office Banking Installationsanleitung Mehrplatz-/Netzwerk Hypo Office Banking Inhalt 1. VORAUSSETZUNGEN 2 BETRIEBSSYSTEME 2 HARDWARE ANFORDERUNGEN 2 2. MEHRPLATZ-/NETZWERKINSTALLATION 3 HINTERGRUND ZUR INSTALLATION 3

Mehr

DEPLOYMENTS MIT DOCKER. Created by Wojciech Pietrzak / @astropanic

DEPLOYMENTS MIT DOCKER. Created by Wojciech Pietrzak / @astropanic DEPLOYMENTS MIT DOCKER Created by Wojciech Pietrzak / @astropanic ÜBER MICH Angefangen mit PHP, Perl und Bash in einer Werbeagentur (SEO) Entwicklung von Webandwendungen mit Ruby on Rails Softwareentwickler

Mehr

flexx-gui SDK Anleitung Installations- und Bedienungsanleitung

flexx-gui SDK Anleitung Installations- und Bedienungsanleitung flexx-gui SDK Anleitung Installations- und Bedienungsanleitung www.tastatur.de Vorwort Dieses Dokument wurde mit Sorgfalt erstellt, mit notwendigen Anweisungen für eine sichere Inbetriebnahme und Bedienung

Mehr

ASV-BW. ASV-Serverinstallation unter Linux-Systemen

ASV-BW. ASV-Serverinstallation unter Linux-Systemen Schulverwaltung Baden-Württemberg ASV-BW ASV-Serverinstallation unter Linux-Systemen Stand: 01.04.2015 Inhaltsverzeichnis 1. Vorbereitende... Maßnahmen 3 1.1 Java 7... installieren 3 1.2 PostgreSQL...

Mehr

Renée Bäcker. Perl $foo Magazin

Renée Bäcker. Perl $foo Magazin Renée Bäcker Renée Bäcker Perl Renée Bäcker Perl $foo Magazin Renée Bäcker Perl $foo Magazin OTRS Renée Bäcker Perl $foo Magazin OTRS u.v.m Früher... Am Anfang steht der Kunde... dann kommt der Auftrag

Mehr

Tanuki Service Wrapper 101. JVM Verwaltung mit der Community Edition. Alexander Pacnik Karlsruhe, 05.04.2013

Tanuki Service Wrapper 101. JVM Verwaltung mit der Community Edition. Alexander Pacnik Karlsruhe, 05.04.2013 Tanuki Service Wrapper 101 JVM Verwaltung mit der Community Edition Alexander Pacnik Karlsruhe, 05.04.2013 Agenda... worum es in diesem Vortrag geht. Integration Konfiguration Betrieb Überwachung 2 Einleitung...

Mehr

Revolver Server Handbuch

Revolver Server Handbuch Revolver Server Handbuch 2011 Revolver Software GmbH 1 Schneller Start 1.1 Einführung 4 1.2 Installation 5 1.3 Server hinzufügen 9 1.4 Freischalt-Code eingeben 13 1.5 Server starten 16 1.6 Mit dem Client

Mehr

Linux-Befehlsreferenz

Linux-Befehlsreferenz Grundpraktikum Netz- und Datensicherheit Linux-Befehlsreferenz Lehrstuhl für Netz- und Datensicherheit Ruhr-Universität Bochum Zusammengestellt von: Cornelia Menzel, Endres Puschner Stand: 15. September

Mehr

GSM 500: Upgrade Guide

GSM 500: Upgrade Guide GSM 500 +++ Upgrade Guide +++ Über dieses Dokument: Diese Anleitung beschreibt die Aktualisierung eines Greenbone Security Manager 500 (GSM 500), einem Produkt der Greenbone Networks GmbH (http://www.greenbone.net)

Mehr