Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker @ FOSS4G 2016, Bonn

308 views

Published on

http://2016.foss4g.org/talks.html#146

Docker is a growing open-source platform for building and shipping applications as cloud services in so called containers. But containers can be more than that! Following the idea of DevOps, Dockerfiles are a complete scripted definition of an application with all it's dependencies, which can be build and published as ready to use images. As each container is only running "one thing" (e.g. one application, one database, a worker instance), multiple containers can be configured with the help of docker-compose.
More and more geospatial open source projects or third parties provide Dockerfiles. In this talk, we try to give an overview of the existing Docker images and docker-compose configurations for FOSS4G projects. We report on test runs that we conducted with them, informing about the evaluation results, target purposes, licenses, commonly used base images, and more. We will also give a short introduction into Docker and present the purposes that Docker images can be used for, such as easy evaluation for new users, education, testing, or common development environments.
This talk integrates and summarizes information from previous talks at FOSS4G and FOSSGIS conferences, so I'd like to thank Sophia Parafina, Jonathan Meyer, and Björn Schilberg for their contributions.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Docker @ FOSS4G 2016, Bonn

  1. 1. An overview of Docker images for geospatial applications FOSS4G conference 2016, Bonn, Germany Daniel Nüst Institute for Geoinformatics University of Münster
  2. 2. Talk abstract http://2016.foss4g.org/talks.html#146 Docker is a growing open-source platform for building and shipping applications as cloud services in so called containers. But containers can be more than that! Following the idea of DevOps, Dockerfiles are a complete scripted definition of an application with all it's dependencies, which can be build and published as ready to use images. As each container is only running "one thing" (e.g. one application, one database, a worker instance), multiple containers can be configured with the help of docker-compose. More and more geospatial open source projects or third parties provide Dockerfiles. In this talk, we try to give an overview of the existing Docker images and docker-compose configurations for FOSS4G projects. We report on test runs that we conducted with them, informing about the evaluation results, target purposes, licenses, commonly used base images, and more. We will also give a short introduction into Docker and present the purposes that Docker images can be used for, such as easy evaluation for new users, education, testing, or common development environments. This talk integrates and summarizes information from previous talks at FOSS4G and FOSSGIS conferences, so I'd like to thank Sophia Parafina, Jonathan Meyer, and Björn Schilberg for their contributions.
  3. 3. Agenda What is Docker? Why? What can it be used for? Overview of geo-related containers Select containers Live Demo
  4. 4. Why containerization? Why Docker?
  5. 5. Motivation http://www.slideshare.net/gmccance/cern-data-centre-evolution Pets vs. Cattle
  6. 6. Motivation https://www.docker.com/use-cases
  7. 7. Science Reproducibility is at the of
  8. 8. Slide by Docker inventor & Docker, Inc. CTO Solomon Hykes, DockerCon 2014
  9. 9. https://www.docker.com/what-docker https://en.wikipedia.org/wiki/Operating-system-level_virtualization https://youtu.be/ki8CZkutoxQ Containerization using kernel features namespaces libcontainer, LXC cgroups resources Houses vs. Appartments
  10. 10. Docker basics Dockerfile … … Docker Image Docker Container build run pause stop/kill start logs cp exec rm stats docker-compose configuration … … use n Docker Container Docker Container Docker Container up down Docker CLI Docker Engine Docker Registry run
  11. 11. “Official Docker registry”: Docker Hub
  12. 12. https://hub.docker.com/u/osgeo/ $ docker run -it --rm osgeo/proj.4 root@f1141552cee9:/# proj Rel. 4.9.3, dd Month yyyy usage: proj [ -beEfiIlormsStTvVwW [args] ] [ +opts[=arg] ] [ files ] root@f1141552cee9:/#
  13. 13. Process and evaluation Google Search Docker Hub Search FOSS4G talks OSGeo project list Criteria and data points Goals / target users / applications (e.g. testing, dev env, new users, demos, …) Maintainer (3rd party, original devs?) License Base image
  14. 14. “geo” on Docker Hub
  15. 15. “gis” on Docker Hub
  16. 16. Degree tfr42/deegree tfr42/teamengine mdillon/postgis FROM tomcat:8-jre7 MAINTAINER deegree TMC <tmc@deegree.org> # set deegree version ENV DEEGREE_VERSION 3.3.18 # download deegree RUN wget http://repo.deegree.org/content/repositories/public /org/deegree/deegree- webservices/${DEEGREE_VERSION}/deegree-webservices- ${DEEGREE_VERSION}.war -O /usr/local/tomcat/webapps/deegree-webservices.war # run tomcat CMD ["catalina.sh", "run"]
  17. 17. gdal - Live Demo docker run --rm geodata/gdal Play around with gdal, easily use different versions (of library combinations) https://github.com/geo-data/gdal-docker Use it as a “binary executable” in scripts, e.g. https://gist.github.com/spara/73972116fe751bf374e29618a10d5bed https://hub.docker.com/r/spara/gdal_ef/
  18. 18. QGIS - Live Demo xhost + # --rm will remove the container as soon as it ends docker run --rm --name="qgis-desktop-2.14ltr" -i -t -v ${HOME}:/home/${USER} -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY kartoza/qgis-desktop:2.14 xhost - docker run --name "qgis-server-webclient" -p 8081:80 - d -t opengisch/qgis-server-webclient
  19. 19. PostGIS
  20. 20. PostGIS - Live Demo docker run --name some-postgis -e POSTGRES_PASSWORD=mysecretpassword -d mdillon/postgis docker run -it --link some-postgis:postgres - -rm postgres sh -c 'exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U postgres' # list # q
  21. 21. tileserver-mapnik - Live Demo wget -c https://osm2vectortiles- downloads.os.zhdk.cloud.switch.ch/v1.0/extracts/zurich.mbtile s git clone https://github.com/mapbox/mapbox-studio-osm- bright.tm2.git docker run -v $(pwd):/data -p 8085:80 klokantech/tileserver-mapnik
  22. 22. 52°North WPS - Live Demo docker run -p 80:8080 52n-wps-base http://localhost/wps
  23. 23. pycsw Live Demo docker run --rm -it -p 8000:8000 geocontainers/pycsw http://localhost:8000/
  24. 24. GeoNode Live Demo docker run -p 8000:8000 -p 8080:8080 openmarble/arch-geonode http://localhost:8080/
  25. 25. GeoMOOSE Live Demo docker run -p 80:80 --rm=true --name geomoose_demo geomoose http://localhost/geomoose/geomoose_dev.html Great example: Instructions for demo, testing, and development usage of the image
  26. 26. Osmosis Live Demo docker run --rm -t -i -v $(pwd)/tmp:/data farberg/openstreetmap-osmosis-docker --read- pbf /data/monaco.osm.pbf --write-xml /data/monaco.xml docker run --rm -t -i -v $(pwd)/tmp:/data ferimer/osmosis:20160525 --read-pbf /data/monaco.osm.pbf --write-xml /data/monaco2.xml diff tmp/monaco2.xml tmp/monaco.xml
  27. 27. PDAL http://www.pdal.io/workshop/docker.html PDAL stands on the shoulders of giants. It uses GDAL, GEOS, and many other dependencies. Because of this, it is very challenging to build it yourself. We could easily burn an entire workshop learning the esoteric build miseries of PDAL and all of its dependencies. Fortunately, Docker will allow us to use a fully-featured known configuration to run our examples and exercises without having to suffer so much. docker run -t pdal/pdal pdal --help
  28. 28. CartoDB docker run -d -p 3000:3000 -p 8080:8080 -p 8181:8181 --name carto sverhoeven/cartodb sudo sh -c 'echo 127.0.1.1 cartodb.localhost >> /etc/hosts' docker run -p 80:80 --link carto:cartodb.localhost -d spawnthink/cartodb-nginx http://cartodb.localhost
  29. 29. Join on the OSGeo wiki https://wiki.osgeo.org/wiki/DockerImages https://wiki.osgeo.org/wiki/DockerImagesMeta
  30. 30. Core arguments for FOSS4G community (all the Docker advantages… write once, biz ops, cloud, etc.) Lower entrance barrier for users AND devs (e.g. sandboxed stack per developer, J. Meyer) Easier transition from testing to production
  31. 31. Tasks & Challenges for the community Put your project on Docker Hub as an automated build and add a license Use base images, extend them to provide useful variants Collaborate with existing images! Make services and apps configurable using ENVironment parameters and files Projects and their developers must build up knowledge Communicate intention of Dockerfile because there is not one Dockerfile fitting all problems UbuntuGIS easy, but huge images (try alpine!) Packaging UI / Desktop applications still in flow
  32. 32. One more thing... http://geocontainers.org
  33. 33. Geocontainers is a RIP-OFF! http://biodocker.org/
  34. 34. https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=foss4g&starCount=0 as of Aug 23 2016
  35. 35. Thanks for your attention! What are your questions? http://o2r.info @o2r_project daniel.nuest@wwu.de Thanks to… Björn Schilberg (Intevation) - https://www.fossgis.de/konferenz/2015/programm/events/847.de.html and https://www.youtube.com/watch?v=CeI8S_tnCZ0 Jonathan Meyer - https://2016.foss4g-na.org/session/image-mosaics-automation Sophia Parafina - https://2016.foss4g-na.org/session/spatial-data-processing-docker

×