Docker. Softwaretest, Testautomatisierung und -management. Nico Maas. Grundlagen. Saar 2017

Ähnliche Dokumente
Docker. Grundlagen Workshop Trier Tech Talk Conference, Nico Maas

Docker. Grundlagen SaarCamp 2016 Nico Maas

resin.io push-to-deploy to milljuuunen Raspberry Pi Pi and More 9 Nico Maas

Container im Schwarm - Weblogic und Docker Swarm

CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln,

Dockerbank Container-basiertes Deployment von biomedizinischen IT-Lösungen

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

DOCKER IN PRACTICE. Matthias Zober EXXETA GmbH Leipzig

Anwendungsvirtualisierung in Containern mit Docker

The linux container engine. Peter Daum

Forms 12c, Reports und Weblogic in Docker betreiben

Dockerbank II. Block 2: Komplexbeispiel. Benjamin Baum 1, Christian Bauer 1

Docker Container für das Deployment eines WebLogic Clusters

Erhöhe den Nutzen deines Dienstes

Build. Ship. Run. Docker. Namics.

Docker & DevOps.

Brownbag Zieht den Helm auf

Containisierung von Java Apps mit Docker

Einführung in Docker. Tobias Zeimetz

Docker revisited - Leichtgewichtige Orchestrierung. Dr. Halil-Cem adesso AG - Dortmund

Platform as a Service (PaaS) & Containerization

bedienerfreundlich plattformunabhängig Industrie 4.0 Web Viewer Smartphone-App kostenl. Hotline

Ansible Grundlagen / 26

Inhaltsverzeichnis Erste Schritte Grundprinzipien in Linux

Continuous Delivery in der Praxis

Continuous Delivery mit Docker

Kommunikation fürs IoT Pi and More 10 Nico Maas

Docker Konzept, Internals & Einsatzszenarien. TechTalk im Netz39 e.v.

1 LINUX-CHEATSHEET (symbolischer Name localhost ) ist der jeweils aktuelle

Vom Umgang mit Containern in der Informatik

Einführung in Ansible

Continuous Delivery in der Praxis

Knotenadministration aus der Ferne

Con guration as Code Über Ansible Ansible Grundlagen Live Demo Weitere Informationen

Continuous Integration mit GitLab CI. Christine Koppelt Philipp Haußleiter GUUG-Frühjahrsfachgespräch 1. März 2018

Continuous Integration mit GitLab CI Christine Koppelt Open-Source-Treffen, 26. Januar 2018

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

am besten erst den ganzen Abschnitt lesen, besonders das mit dem patch!

Domain Creation. DOAG 2013 Andreas Chatziantoniou - Foxglove-IT BV Thorsten Wussow Slix GmbH

Docker. Lass mal containern Julian mino GPN

In diesem Beispiel verwende ich einen Raspberry Pi 3 (wg. Ethernetanschluss) mit einem MMDVM Hat Klon.

Container. Fluten Container bald das RZ? Markus Schaub

Container Hype. TODO : Vollflächiges Container Bild. Håkan Dahlström Source:

Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus

Dies ist der zweite Artikel einer Serie über Electron.

GIS Docker und Azure-Cloud. Neues aus der Entwicklung

Boost your APEX Deployment and Provisioning with Docker

Raspberry Pi Appliances. Das richtige Betriebssystem für die eigene SW Lösung finden Pi and More 7 Nico Maas

Entwicklung einer Webapplikation zur Vereinfachung der Umsetzung webbasierter Anwendungen

Java Forum Stuttgart, Muss es immer Docker sein? Sandra

Isolierte Umgebungen für Python Anwendungen Teil 2. Christine Koppelt, Jürgen Schackmann, Stefan Seelmann

Container als Immutable Infrastructure. John M. Hutchison

Infrastruktur im Wandel

Tutorium SS17 EINFÜHRUNG + BREAKOUT

Ausrollen von Multi-Tier-Applikationen mit Docker

IBM Planning Analytics Workspace Installation Live Demo & Ausblick

mjpg-streamer Installation

Linux Containers (LXC) inqbus

Container-Orchestrierung in der Cloud für Profis

Arbeiten in der Unix-Kommandozeile

Docker Container für das Deployment eines WebLogic Clusters

Docker für Java Entwickler

Test-Driven DevOps. Michael Jerger. Michael Jerger. TestDrivenDevOps_1_0-expanded 04/07/18 / Seite 1.

Weblogic 12.2 und DB 12.2 das perfekte Duo

Dockerize It. Mit APEX in die Amazon Cloud. Maik Michel, Senior Developer / Consultant OPITZ CONSULTING Deutschland GmbH

Herding Docker Images. Providing Docker images for 150+ developers running 150+ microservices Sven Höxter FrOSCon 2018

1,8 Display Bedienungsanleitung Raspberry Pi

bedienerfreundlich plattformunabhängig Industrie 4.0 Web Viewer Smartphone-App kostenl. Hotline

APEX OOS TOOLS & HELFER

UNIX/Linux Lösung. Mär 14, 17 20:40 Seite 1/6. Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?):

Das Netzwerk von Docker. Java Stammtisch Goettingen

VMWare 3.0. Vmware Installation: - Install VMWARE. - c:\ Programme \ VMWARE. - CD Autorun disable / ja

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Server in Betrieb nehmen

DockerHandsOn-Admincamp2018

I2C Serial 2.6 LCD Modul. Verwendung mit einem Arduino

Docker für Entwickler

Anleitung Installation DVMEGA Image Pi-Star Version 1.3 von OE8VIK/HB3YZE

Netbeans 6.1 mit SVN Server unter Debian etch mit Windows Clients

Dockerize It. Mit APEX in die Amazon Cloud. Maik Michel, Senior Developer / Consultant OPITZ CONSULTING Deutschland GmbH

Microsoft-Prüfung. Installation, Storage, and Compute with Windows Server Preview EXAM PACK

5 Docker in der Entwicklung einsetzen

Anlegen von Entwicklungsumgebungen per Vagrant & Chef

VPN einrichten mit Linux (32, 64 Bit) und Mozilla Firefox

DevOps und Red Hat Openshift Eine Traumkombination SEVEN PRINCIPLES AG

Software Engineering

Arbeiten in der Unix-Kommandozeile

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

Howto Anleitung zum Update von Docker für armhf basierte Einplatinencomputer 2015 Stefan W. Lambert

Das neue Entwicklerleben mit Windows 10

Einführung in Git. master. Initial commit

Tutorial: Getting Started with ICC HAW Hamburg

Willkommen! Verdrahten des Panels mit dem Raspberry Pi:

Windows Server-Container, Docker und Hyper-V-Container

APEX DESKTOP APPS. Interaktion mit dem Client System

Transkript:

Docker Grundlagen Softwaretest, Testautomatisierung und -management Saar 2017 Nico Maas

Zur Person Nico Maas IT Systemelektroniker Bachelor of Science mail@nico-maas.de www.nico-maas.de @nmaas87

Agenda - I. Einführung - VMs vs Container - Container Technologie - Docker Architektur - Images / Container - II. Demo - Docker Grundlagen - Dockerfile - Docker Compose - Docker Swarm - III. Docker im Einsatz - resin.io - gogs.io - drone.io

I. VMs vs Container [ Docker ]

I. Matrix From Hell https://blog.docker.com/2013/08/paas-present-and-future/

I. Container http://stackoverflow.com/questions/24702233/docker-container-and-memory-consumption

I. Docker Architektur [ Docker ]

I. Image / Container Images Dateisystem R/O Ein ganzes Repo gibt es auf hub.docker.com Container laufende Instanz eines Images R/W Änderungen müssen mit docker commit gespeichert werden damit sie permanent werden und zu einem neuen Image

I. Aufbau Images Images bestehen aus Layern Neue Images am Besten nicht von Hand, sondern per Dockerfile bauen Jeder Befehl in einer Dockerfile wird ein eigener Layer Möglichst wichtige Befehle / Basis direkt am Anfang und zusammenfassen damit das eigene Caching von Docker besser funktioniert häufig sich ändernde Dateien ans Ende Beispiel für ein Layer: https://imagelayers.io/?images=nmaas87%2fdocker-openwrt:latest

II. Demo Docker Grundlagen docker Ausgabe Dockerhilfe docker version Versionsausgabe docker ps Laufende container Anzeigen docker ps a Gestoppte Container anzeigen docker run nmaas87/docker-openwrt echo "Hallo Docker Meetup 2017!" Image nmaas87/docker-openwert auf dem latest Stand von hub.docker.com herunterladen, starten und dort den Befehl echo "Hallo Docker Meetup 2017!" ausführen

II. Demo Docker Grundlagen docker run -d nmaas87/docker-openwrt ping 127.0.0.1 -c 50 ping Befehl im deattached Mode ausführen docker ps Laufende Container anzeigen lassen, z.b. docker attach a94 Wieder mit dem laufenden Container verbinden Container stirbt automatisch wenn der darin laufende Prozess (ping, läuft als Prozess ID 1) endet

II. Demo Docker Grundlagen docker run -it nmaas87/docker-openwrt /bin/sh Interaktive Shell im Container starten STRG + P + Q Von der Shell trennen docker ps Laufende Container anzeigen lassen, z.b. docker attach d9f Wieder mit dem laufenden Container verbinden

II. Demo Dockerfile Wird verwendet um ein neues Docker Image zu bauen / Kochrezept Dockerfile Beispiel (siehe: https://github.com/nmaas87/docker-demo ) FROM nmaas87/docker-openwrt:15.05.1_x86 # Update opkg Package List, Install python 2.7, pip, Flask and create directories RUN opkg update && \ opkg install wget ca-certificates libffi libopenssl python-openssl python && \ cd /tmp && \ wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py && \ pip install --no-cache-dir Flask && \ mkdir /app/ /app/templates # copy files required for the app to run COPY app.py /app/ COPY templates/index.html /app/templates/ # tell the port number the container should expose EXPOSE 80 # run the application #CMD /sbin/init CMD ["python", "/app/app.py"]

II. Demo Dockerfile docker build t app. Erstelle das Image app aus der Dockerfile mit dem Namen Dockerfile welche du im gleichen Verzeichnis (hier mit. beschrieben) gefunden hast

II. Demo Docker Compose Wird verwendet um leichter Docker Images auszuführen docker-compose.yml (siehe: https://github.com/nmaas87/docker-demo) flaskapp: restart: unless-stopped image: app ports: - "80:80" Erzeuge einen Container mit dem Namen flaskapp, welchen du immer wieder neustartest (selbst wenn der Service darin stirbt oder der Server neugestartet wird), verwende dazu das lokale Image app (eben gebaut) und binde den Host Port 80 an den Container Port 80 (HOST:Docker Container) Starten mit docker-compose up oder docker-compose up d (für deattached Mode) Auf http://localhost gehen um die Webseite zu sehen

II. Demo Docker Swarm Redundantes Cluster von Docker Nodes, in gewissem Grade selbstheilend, mit Routing Overlay Network Swarm erstellen: Auf dem "Master/Manager" Swarm Netzwerk erstellen: docker swarm init --advertise-addr <MANAGER-IP> Gibt anschließend ein CMD aus ähnlich: docker swarm join --token <token> <MANAGER-IP>:2377 Dieses CMD auf allen Docker Nodes ausführen fertig! Service erstellen docker service create --replicas 1 --name pinger nmaas87/docker-openwrt:trunk_x86 ping docker.com docker service ls docker service inspect --pretty pinger docker service ps pinger docker service scale pinger=3 docker service rm pinger Nützliche CMDs (auf Manager!) docker node ls docker info

II. Demo Gogs / Drone / Maven / JUnit Live Demo SonarQube Runner

III. Docker im Einsatz www.resin.io Verwendet Docker als Deployment Methode von Applikationen z.b. auf Raspberry Pi oder anderen ARM Plattformen www.gogs.io Gitlab Clone welcher in Go geschrieben ist, als Docker Container gepackt www.drone.io CI System welcher als Docker Image kommt und Docker Container verwendet um Testing zu verwenden, besonders gut in Zusammenarbeit mit Gogs

IV. Fragen? Vielen Dank für Ihre Aufmerksamkeit!

V. Quellenangabe Grafik Frontfolie: - https://www.docker.com/products/docker-engine