SlideShare ist ein Scribd-Unternehmen logo
Martin Christen
FHNW – Fachhochschule Nordwestschweiz
Hochschule für Architektur, Bau und Geomatik
Institut Vermessung und Geoinformation
martin.christen@fhnw.ch
@MartinChristen
Einführung zu Docker für Python-Entwicklung
+
3 April 2016InstitutVermessung undGeoinformation 2
Kurzvorstellung
Martin Christen
Dozent für Geoinformatik und 3D-Computergrafik
FHNW - Fachhochschule Nordwestschweiz
Hochschule für Architektur, Bau und Geomatik
Institut Vermessung und Geoinformation
Lehrtätigkeit
– Python-Programmierung (1. – 3. Semester)
– Web-Technologien (1. Semester)
– Geoinformatik (5. Semester)
– Geoprocessing mit Python (Master-Studiengang)
– 3D-Computergrafik (Master-Studiengang)
Primäre Forschungsinteressen
– 3D-Computergrafik als Webservice (insb. Bildverarbeitung/Ray-Tracing)
– Large-Scale 3D-Rendering
– Big Data & (Geo-)Datenprozessierung @MartinChristen
GitHub: MartinChristen
3 April 2016InstitutVermessung undGeoinformation 3
Ausgangslage:OpenWebGlobe Projekt
3 April 2016InstitutVermessung undGeoinformation 4
Motivation: 3D-Streaming im Webbrowser
MapData © OpenStreetMapcontributors
BTh Hürbi/Daetwyler,MTh Lucas Oertli,2013
3 April 2016InstitutVermessung undGeoinformation 5
90 CityGML files (2.72 GB)
26'474 textures (1024x1024), unkomprimierte Grösse ca. 77 GB
Orthophoto unkomprimiert ca. 430 GB
3 April 2016InstitutVermessung undGeoinformation 6
OpenStreetMap 3D – 3dmap
Quelle: BTh, Daniel Rettenmund 2015
3 April 2016InstitutVermessung undGeoinformation 7
App: unsichtbares sichtbar machen (Römerstadt Augusta Raurica)
3 April 2016InstitutVermessung undGeoinformation 8
Geodatenprozessierung
Web Viewer
• HTML5, WebGL, JavaScript
Data Processing &
Storage/Cache
• Python
• JavaScript (node.js)
• C++
• Optimal im HPCC
Raw data
3 April 2016InstitutVermessung undGeoinformation 9
Geodatenprozessierung
Web Viewer
• HTML5, WebGL, JavaScript
Data Processing &
Storage/Cache
• Python
• JavaScript (node.js)
• C++
• Optimal im HPCC
Raw data
Neue Entwicklerin/neuer Entwickler im Team ?
-> Wo beginnen ???
Wie kann ich Entwicklungsumgebung aufsetzen ??
Fehler finden ?
Testen ?
...
3 April 2016InstitutVermessung undGeoinformation 10
Problematik bei Web-Services
(Quelle: docker.io)
3 April 2016InstitutVermessung undGeoinformation 11
Eine Analogie: Transport von Gütern vor ca. 1950:
(Quelle: docker.io)
3 April 2016InstitutVermessung undGeoinformation 12
Standardisierung: Container als ISO Standard
3 April 2016InstitutVermessung undGeoinformation 13
Standardisierung mit Containern (nach ca. 1950)
(Quelle: docker.io)
3 April 2016InstitutVermessung undGeoinformation 14
Standardisierung von (Web-)Services als Container: Docker!
(Quelle: docker.io)
3 April 2016InstitutVermessung undGeoinformation 15
Weshalb Docker ?
• Immer mehr Software-Entwickler setzen bei der täglichen Arbeit auf virtuelle
Maschinen in denen sie einen Server replizieren, der dann auch auf dem
Produktivsystem zum Einsatz kommt.
• Docker ermöglicht, Anwendungen in sogenannten Containern auszuführen.
• Diese Container können aufeinander aufbauen und miteinander
kommunizieren… z.B. Datenbank / Webserver / …
Unterschied zu normalen virtuellen Maschinen:
• Nicht jeder Container muss ein komplettes Betriebssystem mitbringen!
• Container-basierte Virtualisierung isoliert Applikationen auf einem
gemeinsamen Betriebssystem voneinander, um die Auslieferung von
Anwendungen zu standardisieren.
3 April 2016InstitutVermessung undGeoinformation 16
Weshalb Docker ???
Das Anwendungsgebietvon Docker ist sehr gross. Ich benutze Docker primär für
die Softwareentwicklung (Webservices) und dessen Deployment ->DevOps
Vorteile:
• Jede Entwicklerin, jeder Entwickler hat dieselbe Umgebung. Die Aussage “läuft im
Moment nur auf meinem Laptop” gibt es nicht mehr.
• Das Betriebssystem während der Entwicklung ist auch dieselbe wie beim Deployment
• Einfacher Einstieg für neue Entwickerinnen und Entwickler. Alle haben exakt dieselbe
Umgebung. Die Installation der ist völlig automatisiert! Ideal für Continous
Integration.
• Schreiben von Tests ist für alle einfacher, alle haben sowieso dieselben Daten,
Testdatenbanken etc. installiert.
• github ?: Keine Images von virtuellen Maschinen müssen eingechecked werden,
sondern nur dessen Beschreibung (Dockerfile), also ideal für Versionsverwaltungen.
3 April 2016InstitutVermessung undGeoinformation 17
Virtuelle Maschinen vs. Docker
“Docker creates a common
framework for developers and
sysadmins to work together on
distributed applications”
http://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-normal-virtual-machine
3 April 2016InstitutVermessung undGeoinformation 18
Installation (a. Windows)
Siehe auch: https://docs.docker.com/engine/installation/windows/
Geht nur mit 64 bit Windows, ab Windows 7.
Hyper-V muss deaktiviert sein (ab Windows 8)
• Windows-Key + X
• Programme und Features (ganz oben) wählen
• Windows-Features aktivieren oder deaktivieren
• Hyper-V abwählen
• Nach Deaktivierung ist ein Neustart erforderlich…
Dann kann die Docker Toolbox installiert werden:
https://www.docker.com/products/docker-toolbox
Danach kann das Docker Terminal gestartet werden.
3 April 2016InstitutVermessung undGeoinformation 19
Installation (b. MacOS X)
Siehe auch: https://docs.docker.com/engine/installation/mac/
OSX ab Version 10.8 (Mountain Lion) wird benötigt.
Der Installer ist auf https://www.docker.com/products/docker-toolbox zu finden.
3 April 2016InstitutVermessung undGeoinformation 20
Installation (c. Linux)
Auch bei Linux geht es nur mit 64-bit, und Kernel ab Version 3.10
Genaue Instruktionen siehe: https://docs.docker.com/engine/installation/linux/
(für verschiedene Linux Distributionen)
3 April 2016InstitutVermessung undGeoinformation 21
Unterschied Linux <-> Windows / Mac
docker-machine ip defaultlocalhost
3 April 2016InstitutVermessung undGeoinformation 22
Docker benutzen
Zunächstöffnen wir das Docker Quickstart Terminal:
3 April 2016InstitutVermessung undGeoinformation 23
Erstellen eines Dockerfiles
vim Dockerfile
# Ausgehend vom image Ubuntu 14.04
FROM ubuntu:14.04
MAINTAINER Vorname Nachname email@email.com
# Image aktualisieren
RUN apt-get update --yes
# Applikation ausführen
CMD echo 'hello world'
docker build -t mchristen/myapp .
3 April 2016InstitutVermessung undGeoinformation 24
docker images # Anzeigen aller Images
docker ps -a
docker run mchristen/myapp
3 April 2016InstitutVermessung undGeoinformation 25
Und nun Python…
Wir erstellen ein neues Dockerfile, bei dem wir Python3 installieren:
# Ausgehend vom image Ubuntu 14.04
FROM ubuntu:14.04
MAINTAINER Vorname Nachname email@email.com
# Image aktualisieren
RUN apt-get update --yes
# Python installieren
RUN apt-get install -y python3-pip
docker build -t mchristen/python3 .
3 April 2016InstitutVermessung undGeoinformation 26
Python Programm ausführen
print('Hello World! This is Python3')
test.py
docker run –i mchristen/python3 python3 < test.py
3 April 2016InstitutVermessung undGeoinformation 27
Webservice z.B. mit Flask
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello from Docker and Flask'
if __name__ == '__main__':
app.run(debug=True,host='0.0.0.0', port=3000)
demo.py
Dieses einfache Flask-App läuft auf port 3000
Wir verwenden dazu auch Ubuntu 14.04 und erstellen folgendes Dockerfile:
3 April 2016InstitutVermessung undGeoinformation 28
Dockerfile
# Ausgehend vom image Ubuntu 14.04
FROM ubuntu:14.04
MAINTAINER Vorname Nachname email@email.com
# Image aktualisieren
RUN apt-get update --yes
# Python installieren
RUN apt-get install -y python3-pip
# Flask installieren:
RUN pip3 install flask
# Port freigeben
EXPOSE 3000
# Python (Flask) app hinzufügen
ADD demo.py /root/demo.py
# Demo ausführen
CMD python3 /root/demo.py
WORKDIR /app
WORKDIR /app
3 April 2016InstitutVermessung undGeoinformation 29
Docker image erstellen und App ausführen
docker build -t mchristen/flaskapp .
docker run –p 3000:3000 mchristen/flaskapp
docker run –p 80:3000
beenden:
docker stop CONTAINERID
Die Container id erhält man übrigens mittels docker ps
3 April 2016InstitutVermessung undGeoinformation 30
Webservice
3 April 2016InstitutVermessung undGeoinformation 31
Wichtige Docker Commands
docker pull ubuntu:latest
docker images
docker ps # laufende container anzeigen
docker ps –a # alle container anzeigen
docker rmi IMAGETAG # Löschen image
docker rm CONTAINERID # Löschen container
docker rm $(docker ps -a -q) # Löschen aller container
docker pull ubuntu # image holen
# bash starten:
docker run -i -t --entrypoint /bin/bash mchristen/python3
docker-machine restart default
3 April 2016InstitutVermessung undGeoinformation 32
Docker in PyCharm
Ab PyCharm 5 (Professional Edition):
https://blog.jetbrains.com/pycharm/2015/12/using-docker-in-pycharm/
3 April 2016InstitutVermessung undGeoinformation 33
Fazit
• Docker und die API (Konsolenkommandos & Python-API) wurden vorgestellt
• Docker eignet sich hervorragend zur Entwicklung von Webservices
• Mit Python haben alle Entwickler dieselben Modul-Versionen.Installation der
Module ist komplett automatisiert, egal mit welchem Host-Betriebssystem
gearbeitet wird.
• Gerade “schwierig zu installierende” Module wie z.B. OpenCV für Python 3.5
funktioniert damit von allen Betriebssystemen aus
• Mit Entwicklungsumgebungen wie z.B. PyCharm kann das direkt auf der
Docker-Maschine debugged/ausgeführtwerden.
• Testing / Continuous Integration ist viel einfacher zu koordinieren.
3 April 2016InstitutVermessung undGeoinformation 34
22-24. Juni 2016 (21. Juni: Codesprint) near Basel, Switzerland
www.geopython.net
#GeoPythonConf
3 April 2016InstitutVermessung undGeoinformation 35
Fragen

Weitere ähnliche Inhalte

Was ist angesagt?

SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
Schlomo Schapiro
 
Git Grundlagen
Git GrundlagenGit Grundlagen
Git Grundlagen
Benjamin Schürmann
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
Nicholas Dille
 
Einführung in Git
Einführung in GitEinführung in Git
Einführung in Git
andreaswo
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
Christian Colbach
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
OPITZ CONSULTING Deutschland
 
Der WordPress Wolpertinger
Der WordPress WolpertingerDer WordPress Wolpertinger
Der WordPress Wolpertinger
frankstaude
 
Docker Entwicklungsumgebung für TYPO3 mit xdebug
Docker Entwicklungsumgebung für TYPO3 mit xdebugDocker Entwicklungsumgebung für TYPO3 mit xdebug
Docker Entwicklungsumgebung für TYPO3 mit xdebug
Alexander Bohndorf
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
B1 Systems GmbH
 
Ausrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit Docker
B1 Systems GmbH
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende Einführung
Mario Müller
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
Patrick Paechnatz
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
agilemethoden
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Peter Löwe
 
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud StackInfracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Edmund Siegfried Haselwanter
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Nicholas Dille
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
B1 Systems GmbH
 
systemd & Docker
systemd & Dockersystemd & Docker
systemd & Docker
Thorsten Höger
 
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Michael Whittaker
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
m1no
 

Was ist angesagt? (20)

SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
 
Git Grundlagen
Git GrundlagenGit Grundlagen
Git Grundlagen
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
Einführung in Git
Einführung in GitEinführung in Git
Einführung in Git
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Der WordPress Wolpertinger
Der WordPress WolpertingerDer WordPress Wolpertinger
Der WordPress Wolpertinger
 
Docker Entwicklungsumgebung für TYPO3 mit xdebug
Docker Entwicklungsumgebung für TYPO3 mit xdebugDocker Entwicklungsumgebung für TYPO3 mit xdebug
Docker Entwicklungsumgebung für TYPO3 mit xdebug
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
 
Ausrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit Docker
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende Einführung
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
 
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud StackInfracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
systemd & Docker
systemd & Dockersystemd & Docker
systemd & Docker
 
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
 

Andere mochten auch

Presentation final 72
Presentation final 72Presentation final 72
Presentation final 72
Martin Christen
 
Gettiing Started with IoT using Raspberry Pi and Python
Gettiing Started with IoT using Raspberry Pi and PythonGettiing Started with IoT using Raspberry Pi and Python
Gettiing Started with IoT using Raspberry Pi and Python
Martin Christen
 
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
Martin Christen
 
Docker perl build
Docker perl buildDocker perl build
Docker perl build
Workhorse Computing
 
Visualising Basic Concepts of Docker
Visualising Basic Concepts of Docker Visualising Basic Concepts of Docker
Visualising Basic Concepts of Docker
vishnu rao
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
CodeOps Technologies LLP
 
The Dementias- New Biology, Public Health Applications
The Dementias- New Biology, Public Health ApplicationsThe Dementias- New Biology, Public Health Applications
The Dementias- New Biology, Public Health Applications
ColumbiaPublicHealth
 
Scott orr and-burgess_doing_well_by_doing_good_v5
Scott orr and-burgess_doing_well_by_doing_good_v5Scott orr and-burgess_doing_well_by_doing_good_v5
Scott orr and-burgess_doing_well_by_doing_good_v5
Charles Perkins Centre, University of Sydney
 
RAFT - IEEE GOLD Volunteer Information Evening Nov 2013
RAFT - IEEE GOLD Volunteer Information Evening Nov 2013RAFT - IEEE GOLD Volunteer Information Evening Nov 2013
RAFT - IEEE GOLD Volunteer Information Evening Nov 2013
IEEE SCV YP
 
Development and evaluation of a mobile phone app intervention targeting sleep...
Development and evaluation of a mobile phone app intervention targeting sleep...Development and evaluation of a mobile phone app intervention targeting sleep...
Development and evaluation of a mobile phone app intervention targeting sleep...
Charles Perkins Centre, University of Sydney
 
Bitácora electrónica o blog
Bitácora electrónica o blogBitácora electrónica o blog
Bitácora electrónica o blog
Erick Mero
 
Making stone soup: The many faces and eventual solutions to low health litera...
Making stone soup: The many faces and eventual solutions to low health litera...Making stone soup: The many faces and eventual solutions to low health litera...
Making stone soup: The many faces and eventual solutions to low health litera...
Charles Perkins Centre, University of Sydney
 
Voordelig onder de zonnebank in Alphen aan den Rijn | Zonnestudio Voordeel Zon
Voordelig onder de zonnebank in Alphen aan den Rijn | Zonnestudio Voordeel ZonVoordelig onder de zonnebank in Alphen aan den Rijn | Zonnestudio Voordeel Zon
Voordelig onder de zonnebank in Alphen aan den Rijn | Zonnestudio Voordeel Zon
voordeelzon
 
Pengertian administrasi
Pengertian administrasiPengertian administrasi
Pengertian administrasi
IrnaSeptiana_
 
арга зүйн шинэчлэлд
арга зүйн шинэчлэлдарга зүйн шинэчлэлд
арга зүйн шинэчлэлдtsluvsandorj
 
My Visual Artworks from High School
My Visual Artworks from High SchoolMy Visual Artworks from High School
My Visual Artworks from High School
Sarah Liddemore
 

Andere mochten auch (17)

Presentation final 72
Presentation final 72Presentation final 72
Presentation final 72
 
Gettiing Started with IoT using Raspberry Pi and Python
Gettiing Started with IoT using Raspberry Pi and PythonGettiing Started with IoT using Raspberry Pi and Python
Gettiing Started with IoT using Raspberry Pi and Python
 
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
 
Docker perl build
Docker perl buildDocker perl build
Docker perl build
 
Visualising Basic Concepts of Docker
Visualising Basic Concepts of Docker Visualising Basic Concepts of Docker
Visualising Basic Concepts of Docker
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
The Dementias- New Biology, Public Health Applications
The Dementias- New Biology, Public Health ApplicationsThe Dementias- New Biology, Public Health Applications
The Dementias- New Biology, Public Health Applications
 
Scott orr and-burgess_doing_well_by_doing_good_v5
Scott orr and-burgess_doing_well_by_doing_good_v5Scott orr and-burgess_doing_well_by_doing_good_v5
Scott orr and-burgess_doing_well_by_doing_good_v5
 
RAFT - IEEE GOLD Volunteer Information Evening Nov 2013
RAFT - IEEE GOLD Volunteer Information Evening Nov 2013RAFT - IEEE GOLD Volunteer Information Evening Nov 2013
RAFT - IEEE GOLD Volunteer Information Evening Nov 2013
 
Development and evaluation of a mobile phone app intervention targeting sleep...
Development and evaluation of a mobile phone app intervention targeting sleep...Development and evaluation of a mobile phone app intervention targeting sleep...
Development and evaluation of a mobile phone app intervention targeting sleep...
 
Bitácora electrónica o blog
Bitácora electrónica o blogBitácora electrónica o blog
Bitácora electrónica o blog
 
Коттеджный комплекс "5 звезд"
Коттеджный комплекс "5 звезд"Коттеджный комплекс "5 звезд"
Коттеджный комплекс "5 звезд"
 
Making stone soup: The many faces and eventual solutions to low health litera...
Making stone soup: The many faces and eventual solutions to low health litera...Making stone soup: The many faces and eventual solutions to low health litera...
Making stone soup: The many faces and eventual solutions to low health litera...
 
Voordelig onder de zonnebank in Alphen aan den Rijn | Zonnestudio Voordeel Zon
Voordelig onder de zonnebank in Alphen aan den Rijn | Zonnestudio Voordeel ZonVoordelig onder de zonnebank in Alphen aan den Rijn | Zonnestudio Voordeel Zon
Voordelig onder de zonnebank in Alphen aan den Rijn | Zonnestudio Voordeel Zon
 
Pengertian administrasi
Pengertian administrasiPengertian administrasi
Pengertian administrasi
 
арга зүйн шинэчлэлд
арга зүйн шинэчлэлдарга зүйн шинэчлэлд
арга зүйн шинэчлэлд
 
My Visual Artworks from High School
My Visual Artworks from High SchoolMy Visual Artworks from High School
My Visual Artworks from High School
 

Ähnlich wie Docker for Python Development

Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
QAware GmbH
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Bernd Zuther
 
Augmented Reality Workshop
Augmented Reality WorkshopAugmented Reality Workshop
Augmented Reality Workshop
argency
 
Kubernetes
KubernetesKubernetes
Kubernetes
Michael Frembs
 
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVLokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Peter Kraume
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
Nicholas Dille
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...inovex GmbH
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
Ulrich Gerkmann-Bartels
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
Peter Kraume
 
TYPO3 Usergroup Dresden - TYPO3 & Composer
TYPO3 Usergroup Dresden - TYPO3 & ComposerTYPO3 Usergroup Dresden - TYPO3 & Composer
TYPO3 Usergroup Dresden - TYPO3 & Composer
Axel Böswetter
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
Ralf Schwoebel
 
Cloud Native Computing
Cloud Native ComputingCloud Native Computing
Cloud Native Computing
Aarno Aukia
 
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer   OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
NETWAYS
 
Mainframe-Zugriff via Java
Mainframe-Zugriff via JavaMainframe-Zugriff via Java
Mainframe-Zugriff via Java
Frank Rahn
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
Ulrich Krause
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
Hendrik Lösch
 
3d mit Python (PythonCamp)
3d mit Python (PythonCamp)3d mit Python (PythonCamp)
3d mit Python (PythonCamp)
Martin Christen
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
Ulrich Krause
 
Automatisierung mit grunt
Automatisierung mit gruntAutomatisierung mit grunt
Automatisierung mit grunt
Christian Keuerleber
 

Ähnlich wie Docker for Python Development (20)

Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
 
Augmented Reality Workshop
Augmented Reality WorkshopAugmented Reality Workshop
Augmented Reality Workshop
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVLokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEV
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
 
Was ist Docker?
Was ist Docker?Was ist Docker?
Was ist Docker?
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
 
TYPO3 Usergroup Dresden - TYPO3 & Composer
TYPO3 Usergroup Dresden - TYPO3 & ComposerTYPO3 Usergroup Dresden - TYPO3 & Composer
TYPO3 Usergroup Dresden - TYPO3 & Composer
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
 
Cloud Native Computing
Cloud Native ComputingCloud Native Computing
Cloud Native Computing
 
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer   OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
OSMC 2016: Open Monitoring Distribution 2016+ by Gerhard Laußer
 
Mainframe-Zugriff via Java
Mainframe-Zugriff via JavaMainframe-Zugriff via Java
Mainframe-Zugriff via Java
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
 
3d mit Python (PythonCamp)
3d mit Python (PythonCamp)3d mit Python (PythonCamp)
3d mit Python (PythonCamp)
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Automatisierung mit grunt
Automatisierung mit gruntAutomatisierung mit grunt
Automatisierung mit grunt
 

Mehr von Martin Christen

Opening Session GeoPython & Python Machine Learning Conference
Opening Session GeoPython & Python Machine Learning Conference Opening Session GeoPython & Python Machine Learning Conference
Opening Session GeoPython & Python Machine Learning Conference
Martin Christen
 
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHubEuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
Martin Christen
 
Lightning Talk GeoBeer #25
Lightning Talk GeoBeer #25Lightning Talk GeoBeer #25
Lightning Talk GeoBeer #25
Martin Christen
 
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
Martin Christen
 
Teaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learnedTeaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learned
Martin Christen
 
Mixed Reality Anwendungen mit 3D-Stadtmodellen
Mixed Reality Anwendungen mit 3D-StadtmodellenMixed Reality Anwendungen mit 3D-Stadtmodellen
Mixed Reality Anwendungen mit 3D-Stadtmodellen
Martin Christen
 
3D Computer Graphics with Python
3D Computer Graphics with Python3D Computer Graphics with Python
3D Computer Graphics with Python
Martin Christen
 
OpenStreetMap in 3D using Python
OpenStreetMap in 3D using PythonOpenStreetMap in 3D using Python
OpenStreetMap in 3D using Python
Martin Christen
 
Webilea: The OpenWebGlobe Project
Webilea: The OpenWebGlobe ProjectWebilea: The OpenWebGlobe Project
Webilea: The OpenWebGlobe Project
Martin Christen
 
OpenWebGlobe - GeoSharing Bern
OpenWebGlobe - GeoSharing BernOpenWebGlobe - GeoSharing Bern
OpenWebGlobe - GeoSharing Bern
Martin Christen
 
GeoBeer July 3rd, 2013
GeoBeer July 3rd, 2013GeoBeer July 3rd, 2013
GeoBeer July 3rd, 2013
Martin Christen
 

Mehr von Martin Christen (11)

Opening Session GeoPython & Python Machine Learning Conference
Opening Session GeoPython & Python Machine Learning Conference Opening Session GeoPython & Python Machine Learning Conference
Opening Session GeoPython & Python Machine Learning Conference
 
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHubEuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
 
Lightning Talk GeoBeer #25
Lightning Talk GeoBeer #25Lightning Talk GeoBeer #25
Lightning Talk GeoBeer #25
 
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
 
Teaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learnedTeaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learned
 
Mixed Reality Anwendungen mit 3D-Stadtmodellen
Mixed Reality Anwendungen mit 3D-StadtmodellenMixed Reality Anwendungen mit 3D-Stadtmodellen
Mixed Reality Anwendungen mit 3D-Stadtmodellen
 
3D Computer Graphics with Python
3D Computer Graphics with Python3D Computer Graphics with Python
3D Computer Graphics with Python
 
OpenStreetMap in 3D using Python
OpenStreetMap in 3D using PythonOpenStreetMap in 3D using Python
OpenStreetMap in 3D using Python
 
Webilea: The OpenWebGlobe Project
Webilea: The OpenWebGlobe ProjectWebilea: The OpenWebGlobe Project
Webilea: The OpenWebGlobe Project
 
OpenWebGlobe - GeoSharing Bern
OpenWebGlobe - GeoSharing BernOpenWebGlobe - GeoSharing Bern
OpenWebGlobe - GeoSharing Bern
 
GeoBeer July 3rd, 2013
GeoBeer July 3rd, 2013GeoBeer July 3rd, 2013
GeoBeer July 3rd, 2013
 

Docker for Python Development

  • 1. Martin Christen FHNW – Fachhochschule Nordwestschweiz Hochschule für Architektur, Bau und Geomatik Institut Vermessung und Geoinformation martin.christen@fhnw.ch @MartinChristen Einführung zu Docker für Python-Entwicklung +
  • 2. 3 April 2016InstitutVermessung undGeoinformation 2 Kurzvorstellung Martin Christen Dozent für Geoinformatik und 3D-Computergrafik FHNW - Fachhochschule Nordwestschweiz Hochschule für Architektur, Bau und Geomatik Institut Vermessung und Geoinformation Lehrtätigkeit – Python-Programmierung (1. – 3. Semester) – Web-Technologien (1. Semester) – Geoinformatik (5. Semester) – Geoprocessing mit Python (Master-Studiengang) – 3D-Computergrafik (Master-Studiengang) Primäre Forschungsinteressen – 3D-Computergrafik als Webservice (insb. Bildverarbeitung/Ray-Tracing) – Large-Scale 3D-Rendering – Big Data & (Geo-)Datenprozessierung @MartinChristen GitHub: MartinChristen
  • 3. 3 April 2016InstitutVermessung undGeoinformation 3 Ausgangslage:OpenWebGlobe Projekt
  • 4. 3 April 2016InstitutVermessung undGeoinformation 4 Motivation: 3D-Streaming im Webbrowser MapData © OpenStreetMapcontributors BTh Hürbi/Daetwyler,MTh Lucas Oertli,2013
  • 5. 3 April 2016InstitutVermessung undGeoinformation 5 90 CityGML files (2.72 GB) 26'474 textures (1024x1024), unkomprimierte Grösse ca. 77 GB Orthophoto unkomprimiert ca. 430 GB
  • 6. 3 April 2016InstitutVermessung undGeoinformation 6 OpenStreetMap 3D – 3dmap Quelle: BTh, Daniel Rettenmund 2015
  • 7. 3 April 2016InstitutVermessung undGeoinformation 7 App: unsichtbares sichtbar machen (Römerstadt Augusta Raurica)
  • 8. 3 April 2016InstitutVermessung undGeoinformation 8 Geodatenprozessierung Web Viewer • HTML5, WebGL, JavaScript Data Processing & Storage/Cache • Python • JavaScript (node.js) • C++ • Optimal im HPCC Raw data
  • 9. 3 April 2016InstitutVermessung undGeoinformation 9 Geodatenprozessierung Web Viewer • HTML5, WebGL, JavaScript Data Processing & Storage/Cache • Python • JavaScript (node.js) • C++ • Optimal im HPCC Raw data Neue Entwicklerin/neuer Entwickler im Team ? -> Wo beginnen ??? Wie kann ich Entwicklungsumgebung aufsetzen ?? Fehler finden ? Testen ? ...
  • 10. 3 April 2016InstitutVermessung undGeoinformation 10 Problematik bei Web-Services (Quelle: docker.io)
  • 11. 3 April 2016InstitutVermessung undGeoinformation 11 Eine Analogie: Transport von Gütern vor ca. 1950: (Quelle: docker.io)
  • 12. 3 April 2016InstitutVermessung undGeoinformation 12 Standardisierung: Container als ISO Standard
  • 13. 3 April 2016InstitutVermessung undGeoinformation 13 Standardisierung mit Containern (nach ca. 1950) (Quelle: docker.io)
  • 14. 3 April 2016InstitutVermessung undGeoinformation 14 Standardisierung von (Web-)Services als Container: Docker! (Quelle: docker.io)
  • 15. 3 April 2016InstitutVermessung undGeoinformation 15 Weshalb Docker ? • Immer mehr Software-Entwickler setzen bei der täglichen Arbeit auf virtuelle Maschinen in denen sie einen Server replizieren, der dann auch auf dem Produktivsystem zum Einsatz kommt. • Docker ermöglicht, Anwendungen in sogenannten Containern auszuführen. • Diese Container können aufeinander aufbauen und miteinander kommunizieren… z.B. Datenbank / Webserver / … Unterschied zu normalen virtuellen Maschinen: • Nicht jeder Container muss ein komplettes Betriebssystem mitbringen! • Container-basierte Virtualisierung isoliert Applikationen auf einem gemeinsamen Betriebssystem voneinander, um die Auslieferung von Anwendungen zu standardisieren.
  • 16. 3 April 2016InstitutVermessung undGeoinformation 16 Weshalb Docker ??? Das Anwendungsgebietvon Docker ist sehr gross. Ich benutze Docker primär für die Softwareentwicklung (Webservices) und dessen Deployment ->DevOps Vorteile: • Jede Entwicklerin, jeder Entwickler hat dieselbe Umgebung. Die Aussage “läuft im Moment nur auf meinem Laptop” gibt es nicht mehr. • Das Betriebssystem während der Entwicklung ist auch dieselbe wie beim Deployment • Einfacher Einstieg für neue Entwickerinnen und Entwickler. Alle haben exakt dieselbe Umgebung. Die Installation der ist völlig automatisiert! Ideal für Continous Integration. • Schreiben von Tests ist für alle einfacher, alle haben sowieso dieselben Daten, Testdatenbanken etc. installiert. • github ?: Keine Images von virtuellen Maschinen müssen eingechecked werden, sondern nur dessen Beschreibung (Dockerfile), also ideal für Versionsverwaltungen.
  • 17. 3 April 2016InstitutVermessung undGeoinformation 17 Virtuelle Maschinen vs. Docker “Docker creates a common framework for developers and sysadmins to work together on distributed applications” http://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-normal-virtual-machine
  • 18. 3 April 2016InstitutVermessung undGeoinformation 18 Installation (a. Windows) Siehe auch: https://docs.docker.com/engine/installation/windows/ Geht nur mit 64 bit Windows, ab Windows 7. Hyper-V muss deaktiviert sein (ab Windows 8) • Windows-Key + X • Programme und Features (ganz oben) wählen • Windows-Features aktivieren oder deaktivieren • Hyper-V abwählen • Nach Deaktivierung ist ein Neustart erforderlich… Dann kann die Docker Toolbox installiert werden: https://www.docker.com/products/docker-toolbox Danach kann das Docker Terminal gestartet werden.
  • 19. 3 April 2016InstitutVermessung undGeoinformation 19 Installation (b. MacOS X) Siehe auch: https://docs.docker.com/engine/installation/mac/ OSX ab Version 10.8 (Mountain Lion) wird benötigt. Der Installer ist auf https://www.docker.com/products/docker-toolbox zu finden.
  • 20. 3 April 2016InstitutVermessung undGeoinformation 20 Installation (c. Linux) Auch bei Linux geht es nur mit 64-bit, und Kernel ab Version 3.10 Genaue Instruktionen siehe: https://docs.docker.com/engine/installation/linux/ (für verschiedene Linux Distributionen)
  • 21. 3 April 2016InstitutVermessung undGeoinformation 21 Unterschied Linux <-> Windows / Mac docker-machine ip defaultlocalhost
  • 22. 3 April 2016InstitutVermessung undGeoinformation 22 Docker benutzen Zunächstöffnen wir das Docker Quickstart Terminal:
  • 23. 3 April 2016InstitutVermessung undGeoinformation 23 Erstellen eines Dockerfiles vim Dockerfile # Ausgehend vom image Ubuntu 14.04 FROM ubuntu:14.04 MAINTAINER Vorname Nachname email@email.com # Image aktualisieren RUN apt-get update --yes # Applikation ausführen CMD echo 'hello world' docker build -t mchristen/myapp .
  • 24. 3 April 2016InstitutVermessung undGeoinformation 24 docker images # Anzeigen aller Images docker ps -a docker run mchristen/myapp
  • 25. 3 April 2016InstitutVermessung undGeoinformation 25 Und nun Python… Wir erstellen ein neues Dockerfile, bei dem wir Python3 installieren: # Ausgehend vom image Ubuntu 14.04 FROM ubuntu:14.04 MAINTAINER Vorname Nachname email@email.com # Image aktualisieren RUN apt-get update --yes # Python installieren RUN apt-get install -y python3-pip docker build -t mchristen/python3 .
  • 26. 3 April 2016InstitutVermessung undGeoinformation 26 Python Programm ausführen print('Hello World! This is Python3') test.py docker run –i mchristen/python3 python3 < test.py
  • 27. 3 April 2016InstitutVermessung undGeoinformation 27 Webservice z.B. mit Flask from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello from Docker and Flask' if __name__ == '__main__': app.run(debug=True,host='0.0.0.0', port=3000) demo.py Dieses einfache Flask-App läuft auf port 3000 Wir verwenden dazu auch Ubuntu 14.04 und erstellen folgendes Dockerfile:
  • 28. 3 April 2016InstitutVermessung undGeoinformation 28 Dockerfile # Ausgehend vom image Ubuntu 14.04 FROM ubuntu:14.04 MAINTAINER Vorname Nachname email@email.com # Image aktualisieren RUN apt-get update --yes # Python installieren RUN apt-get install -y python3-pip # Flask installieren: RUN pip3 install flask # Port freigeben EXPOSE 3000 # Python (Flask) app hinzufügen ADD demo.py /root/demo.py # Demo ausführen CMD python3 /root/demo.py WORKDIR /app WORKDIR /app
  • 29. 3 April 2016InstitutVermessung undGeoinformation 29 Docker image erstellen und App ausführen docker build -t mchristen/flaskapp . docker run –p 3000:3000 mchristen/flaskapp docker run –p 80:3000 beenden: docker stop CONTAINERID Die Container id erhält man übrigens mittels docker ps
  • 30. 3 April 2016InstitutVermessung undGeoinformation 30 Webservice
  • 31. 3 April 2016InstitutVermessung undGeoinformation 31 Wichtige Docker Commands docker pull ubuntu:latest docker images docker ps # laufende container anzeigen docker ps –a # alle container anzeigen docker rmi IMAGETAG # Löschen image docker rm CONTAINERID # Löschen container docker rm $(docker ps -a -q) # Löschen aller container docker pull ubuntu # image holen # bash starten: docker run -i -t --entrypoint /bin/bash mchristen/python3 docker-machine restart default
  • 32. 3 April 2016InstitutVermessung undGeoinformation 32 Docker in PyCharm Ab PyCharm 5 (Professional Edition): https://blog.jetbrains.com/pycharm/2015/12/using-docker-in-pycharm/
  • 33. 3 April 2016InstitutVermessung undGeoinformation 33 Fazit • Docker und die API (Konsolenkommandos & Python-API) wurden vorgestellt • Docker eignet sich hervorragend zur Entwicklung von Webservices • Mit Python haben alle Entwickler dieselben Modul-Versionen.Installation der Module ist komplett automatisiert, egal mit welchem Host-Betriebssystem gearbeitet wird. • Gerade “schwierig zu installierende” Module wie z.B. OpenCV für Python 3.5 funktioniert damit von allen Betriebssystemen aus • Mit Entwicklungsumgebungen wie z.B. PyCharm kann das direkt auf der Docker-Maschine debugged/ausgeführtwerden. • Testing / Continuous Integration ist viel einfacher zu koordinieren.
  • 34. 3 April 2016InstitutVermessung undGeoinformation 34 22-24. Juni 2016 (21. Juni: Codesprint) near Basel, Switzerland www.geopython.net #GeoPythonConf
  • 35. 3 April 2016InstitutVermessung undGeoinformation 35 Fragen