wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in. - https://www.docker.com/what-docker
image registry 5 Lifecycle Run Regardless of hardware or OS docker build -t my_app . docker tag my_app my_group/my_app:latest docker push my_group/my_app docker run my_group/my_app:latest Users Creators
• Install specific Java version • Install specific Tomcat version • Drop in THREDDS/ ERDDAP WARs Upgrade • Download new WARs • Stop tomcat (what else did you bring down?) • Drop in THREDDS/ ERDDAP WARs • Start tomcat 6 Use Case - Us Now Install • Install docker • docker run --name thredds axiom/docker-thredds:4.6.4 • docker run --name erddap axiom/docker-erddap:1.64 Upgrade • docker stop thredds • docker run --name thredds axiom/docker-thredds:4.6.5 • docker stop erddap • docker run --name erddap axiom/docker-erddap:1.72
Geoserver 00-16 ◦ ncWMS 00-16 ◦ Postgres 00-04 ◦ etc. • Installed on bare-metal - difficult to transfer applications around • Inefficient use of resources - both under and over worked servers 8 Near future • Everything is a node • Doesn’t matter where it is running • DNS based application resolution ◦ someapp.axiomdocker:80 will always resolve to the application no matter where it is running or how many times it is moved. Use Case - Axiom