opennms meets docker
TRANSCRIPT
![Page 1: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/1.jpg)
SchneiderMatic
picture source https://flic.kr/p/jEnibL
OpenNMS meets DockerShip OpenNMS Faster, Easier and with more Fun
20151001 | Markus Schneider | OUCE 2015
![Page 2: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/2.jpg)
@schneidermatic
Markus Schneider | [email protected] | schneidermatic.blogspot.com
SchneiderMaticAbout Me
![Page 3: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/3.jpg)
3picture source https://flic.kr/p/ovqps1
SchneiderMaticAgenda
Docker Basics
Run OpenNMS with Docker
OpenNMS Dockerfiles on GitHub
![Page 4: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/4.jpg)
4picture source https://flic.kr/p/ovqps1
SchneiderMaticAgenda
Docker Basics
Run OpenNMS with Docker
OpenNMS Dockerfiles on GitHub
![Page 5: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/5.jpg)
picture source - https://flic.kr/p/5o5H1E
Docker Mantra
Build
Ship
Run Any App
Anywhere
picture source https://flic.kr/p/i1cyb9
![Page 6: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/6.jpg)
6
SchneiderMaticAre Companies using Docker?
http://www.indeed.com/jobtrends?q=docker&relative=1
![Page 7: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/7.jpg)
picture source - https://flic.kr/p/5o5H1E
Docker Products
Docker Architecture
Docker Engine
Docker Registry Hub
Docker Compose
![Page 8: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/8.jpg)
8
SchneiderMaticDocker Architecture
Profile/Organisation
Docker Daemon
Container
Container
Container
Docker Host (My Linux Box)
Image 2
Image 3
Image N
Image 1
Image 2
Image 3
Image N
Image 1
Docker Client
Docker Registry Hub
Further information - https://docs.docker.com/introduction/understanding-docker/
![Page 9: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/9.jpg)
9
SchneiderMaticDocker Engine
Docker Engine is build on top of the Linux kernel
Docker Engine can only be run directly on Linux OS
Boot2docker is needed for Mac and Microsoft Windows OS
https://docs.docker.com/installation/windows/#learnthekeyconceptsbeforeinstalling
![Page 10: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/10.jpg)
10
SchneiderMaticDocker Registry Hub
Central place for Docker images
SoftwareasaService platform for sharing, finding and extending Docker images
Features
Private repositories Organizations and teams Automated Builds Webhooks
https://hub.docker.com/
![Page 11: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/11.jpg)
11
SchneiderMaticDocker Compose
"Compose is a tool for defining and running multicontainer applications with Docker. With Compose, you define a multicontainer application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running. (source – http://docker.com)
OpenNMS(Container)
PostgreSQL(Container)
Link
docker-compose.ymlopennms: image: opennms/app:16.0.2-1_co66 environment: - DB_POSTGRES_PASSWORD=mysecretpassword ports: - "8980:8980" - "18980:18980" - "1099:1099" - "8101:8101" - "61616:61616" links: - postgrespostgres: image: postgres:9.4 environment: - DB_POSTGRES_PASSWORD=mysecretpassword ports: - "5432:5432"
![Page 12: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/12.jpg)
picture source - https://flic.kr/p/5o5H1E
Docker Components
Docker Image
Docker Container
Dockerfile
picture source https://flic.kr/p/82cqTr
![Page 13: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/13.jpg)
13
SchneiderMaticDocker Image
A Docker image can build on top of another Docker image
The first image layer is called a base image All the other layers except the last image layer are
called parent images Images inherit all the properties and settings of their
parent images
Images can be referenced by image ID or names
Local Docker images can be listed with $ docker images
![Page 14: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/14.jpg)
14
SchneiderMaticDocker Container
A Docker container is created when we execute$ docker run <image>
A writeable layer is added on top of all the image layers
This layer can have two different states:
running exited
Changes are permanent between start & stop
Changes are not written to the underlying image
![Page 15: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/15.jpg)
15
SchneiderMaticDockerfile
A file written in a DSL that contains instructions onsetting up a Docker image
The docker build command builds an image from a Dockerfile
OpenNMS Docker files are maintained on GitHub:https://github.com/opennmsforge/opennmsdockerfiles
# CommentINSTRUCTION arguments
FROM opennms/postgresql:pg9.3_co6.6 MAINTAINER [email protected] & [email protected]# Set work dir WORKDIR /tmp# JAVA ENVENV JAVA_VERSION 8u45ENV BUILD_VERSION b14ENV JAVA_HOME=/usr/java/orajava8# OPENNMS ENVENV OPENNMS_HOME /opt/opennms...
![Page 16: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/16.jpg)
picture source - https://flic.kr/p/5o5H1E
OpenNMS Specifics
Docker Registry Hub Repositories
OpenNMS Docker Image Types
OpenNMS Docker Image Tags
picture source https://flic.kr/p/kaaStW
![Page 17: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/17.jpg)
17
SchneiderMaticDocker Registry Hub Repoitory
![Page 18: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/18.jpg)
18
SchneiderMaticOpenNMS Docker Image Types
CentOS 6.6
PostgreSQL 9.3
OpenNMS 16.0.2_01
All
CentOS 6.6
OpenNMS 16.0.2_01
App
CentOS 6.6
PostgreSQL 9.3
PostgreSQL
![Page 19: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/19.jpg)
19
SchneiderMaticOpenNMS Docker Image Tags
16.0.2-1_pg9.3_co6.6
OpenNMS CentOS
PostgreSQL
![Page 20: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/20.jpg)
20picture source https://flic.kr/p/ovqps1
SchneiderMaticAgenda
Docker Basics
Run OpenNMS with Docker
OpenNMS Dockerfiles on GitHub
![Page 21: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/21.jpg)
21
SchneiderMaticDocker Registry Hub Repoitory
CentOS 6.6
PostgreSQL 9.3
OpenNMS 16.0.2_01
All
CentOS 6.6
OpenNMS 16.0.2_01
App
CentOS 6.6
PostgreSQL 9.3
PostgreSQL
![Page 22: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/22.jpg)
22
SchneiderMaticDocker CLI $ docker pull
$ docker pull opennms/all:16.0.21_pg9.3_co6.6$ export IMAGE="opennms/all:16.0.21_pg9.3_co6.6"$ export NAME="opennms1"$ mkdir ~/opennmsdocker && touch HelloDocker.txt$ cd ~/opennmsdocker
Only for thepresentationneeded!
![Page 23: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/23.jpg)
23
SchneiderMaticDocker CLI $ docker pull
Profile/Organisation
Docker Daemon
Docker Host (My Linux Box)
Docker Client
$ docker pull <image>
Docker Registry Hub
opennms/app:16.0.2-1_co6.6
opennms/postgres:pg9.3_co6.6
opennms/all:16.0.2-1_pg9.3_co6.6
opennms/all:16.0.2-1_pg9.3_co6.6
![Page 24: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/24.jpg)
24
SchneiderMaticDocker CLI $ docker run
$ docker run v $(pwd):$(pwd) w $(pwd) dit p 8980:8980 p 8443:8443 p 18980:18980 p 1099:1099 p 8101:8101 p 61616:61616 p 5432:5432 name $NAME $IMAGE
![Page 25: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/25.jpg)
25
SchneiderMaticDocker CLI – $ docker run
Profile/Organisation
Docker Daemon
Docker Host (My Linux Box)
Docker Client
$ docker run <image>
Docker Registry Hub
opennms/app:16.0.2-1_co6.6
opennms/postgres:pg9.3_co6.6
opennms/all:16.0.2-1_pg9.3_co6.6
opennms/all:16.0.2-1_pg9.3_co6.6
opennms-1
![Page 26: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/26.jpg)
26
SchneiderMaticDocker CLI $ docker inspect
$ CONTAINER_ID=$(docker ps | grep "$IMAGE" | awk '{ print $1 }')$ IP_ADDRESS=$(docker inspect f '{{ .NetworkSettings.IPAddress }}' $CONTAINER_ID)$ printf "OpenNMS Console http://$IP_ADDRESS:8980/opennms\n"
![Page 27: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/27.jpg)
27
SchneiderMaticDocker CLI – Running Container
![Page 28: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/28.jpg)
28
SchneiderMaticDocker CLI – $ docker attach
$ docker stop $CONTAINER_ID && docker start $CONTAINER_ID $ docker attach $CONTAINER_ID$ CRTL + P, CRTL + Q # detach from the container
![Page 29: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/29.jpg)
29
SchneiderMaticDocker CLI – $ docker run
Profile/Organisation
Docker Daemon
Docker Host (My Linux Box)
Docker Client
$ docker run <image>
Docker Registry Hub
opennms/app:16.0.2-1_co6.6
opennms/postgres:pg9.3_co6.6
opennms/all:16.0.2-1_pg9.3_co6.6
opennms/all:16.0.2-1_pg9.3_co6.6
opennms-1
psql
![Page 30: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/30.jpg)
30
SchneiderMaticDocker CLI – $ docker attach
$ psql U postgres h $IP_ADDRESS $ postgres # \l
![Page 31: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/31.jpg)
31
SchneiderMaticDocker Registry Hub Repoitory
CentOS 6.6
PostgreSQL 9.3
OpenNMS 16.0.2_01
All
CentOS 6.6
OpenNMS 16.0.2_01
App
CentOS 6.6
PostgreSQL 9.3
PostgreSQL
![Page 32: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/32.jpg)
32
SchneiderMaticDocker Compose
$ cd ~/opennmsdocker$ git clone https://github.com/opennmsforge/opennmsdockercompose$ cd ./opennmsdockercompose && git checkout app/16.0.21_co66$ dockercompose up d
![Page 33: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/33.jpg)
33
SchneiderMaticDocker Compose
Profile/Organisation
Docker Daemon
Docker Host (My Linux Box)
Docker Client
Docker Registry Hub
opennms/app:16.0.2-1_co6.6
opennms/postgres:pg9.3_co6.6
opennms/all:16.0.2-1_pg9.3_co6.6
opennms/all:16.0.2-1_pg9.3_co6.6
opennms-1
opennms/app:16.0.2-1_co6.6
opennms/postgres:pg9.3_co6.6
Docker Compose
$ dockercompose up d
![Page 34: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/34.jpg)
34
SchneiderMaticDocker Compose
Profile/Organisation
Docker Daemon
Docker Host (My Linux Box)
Docker Client
Docker Registry Hub
opennms/app:16.0.2-1_co6.6
opennms/postgres:pg9.3_co6.6
opennms/all:16.0.2-1_pg9.3_co6.6
opennms/all:16.0.2-1_pg9.3_co6.6
opennms-1
opennms/app:16.0.2-1_co6.6
opennms/postgres:pg9.3_co6.6
Docker Compose
$ dockercompose up d
opennms-2
postgresql-1
![Page 35: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/35.jpg)
35
SchneiderMaticDocker Compose
$ docker ps
![Page 36: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/36.jpg)
36picture source https://flic.kr/p/ovqps1
SchneiderMaticAgenda
Docker Basics
Run OpenNMS with Docker
OpenNMS Dockerfiles on GitHub
![Page 37: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/37.jpg)
37
SchneiderMaticOpenNMS Forge
docker
![Page 38: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/38.jpg)
38
SchneiderMaticOpenNMS Forge
![Page 39: OpenNMS meets Docker](https://reader031.vdocument.in/reader031/viewer/2022020213/58f1d7521a28ab706a8b4645/html5/thumbnails/39.jpg)
39picture source https://flic.kr/p/ovqps1
SchneiderMaticThank You!
Questions?