+ All Categories
Home > Documents > DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO...

DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO...

Date post: 01-Mar-2021
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
28
DOCKER DOCKER GRUNDLAGEN GRUNDLAGEN NICO MAAS NICO MAAS PYTHONCAMP 2018 PYTHONCAMP 2018 07/04/2018 www.nico-maas.de 1 / 28
Transcript
Page 1: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DOCKERDOCKERGRUNDLAGENGRUNDLAGEN

NICO MAASNICO MAASPYTHONCAMP 2018PYTHONCAMP 2018

07/04/2018 www.nico-maas.de 1 / 28

Page 2: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

WHO AM I?WHO AM I?Nico MaasMaster of ScienceIT [email protected]@nmaas87

07/04/2018 www.nico-maas.de 2 / 28

Page 3: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

OVERVIEW (1/3)OVERVIEW (1/3)Introduction

VMs vs ContainerContainer TechnologyDocker ArchitectureImages / Container

07/04/2018 www.nico-maas.de 3 / 28

Page 4: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

OVERVIEW (2/3)OVERVIEW (2/3)Workshop

Demo Docker BasicsDemo Dockerfiledocker-composeDocker Swarm

07/04/2018 www.nico-maas.de 4 / 28

Page 5: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

OVERVIEW (3/3)OVERVIEW (3/3)Docker at Work

resin.iogogs.iodrone.io

07/04/2018 www.nico-maas.de 5 / 28

Page 6: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

INTRODUCTIONINTRODUCTION

07/04/2018 www.nico-maas.de 6 / 28

Page 7: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

VM VS CONTAINERVM VS CONTAINER

07/04/2018 www.nico-maas.de 7 / 28

Page 8: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

MATRIX FROM HELLMATRIX FROM HELL

07/04/2018 www.nico-maas.de 8 / 28

Page 9: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

CONTAINERCONTAINER

07/04/2018 www.nico-maas.de 9 / 28

Page 10: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DOCKER ARCHITECTUREDOCKER ARCHITECTURE

07/04/2018 www.nico-maas.de 10 / 28

Page 11: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

IMAGES / CONTAINERIMAGES / CONTAINERImages

FilesystemR/OA whole repo is available on hub.docker.com

Containerrunning instance of a imageR/Wchanges to the container must be "saved" withdocker commit - which creates a new image withthe changes as a new layer07/04/2018 www.nico-maas.de 11 / 28

Page 12: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

IMAGE ARCHITECTUREIMAGE ARCHITECTUREImages consists of LayersDo not build Images by hand (docker commit) - usea DockerfileEvery CMD in a Dockerfile creates a new LayerLayers are cached - also on Image creation - partsthat change o en should go to the end of theDockerfile - so that Docker does not need to rebuildeverything from 0Example for the layers: https://imagelayers.io/?images=microscaling%2Fimagelayers-api:latest,microscaling%2Fimagelayers-web:latest07/04/2018 www.nico-maas.de 12 / 28

Page 13: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

WORKSHOPWORKSHOP

07/04/2018 www.nico-maas.de 13 / 28

Page 14: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

BEFORE WE START...BEFORE WE START...

07/04/2018 www.nico-maas.de 14 / 28

Page 15: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DEMO DOCKER BASICSDEMO DOCKER BASICSdocker

Docker Helpdocker version

Versioninformationdocker container ps

Running containersdocker container ps -a

Running and stopped containers

07/04/2018 www.nico-maas.de 15 / 28

Page 16: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DEMO DOCKER BASICSDEMO DOCKER BASICSdocker container run nmaas87/docker-openwrtecho "Hello Pythoncamp 2018!"

Download image nmaas87/docker-openwert on"latest" Tag from hub.docker.com, spin up newcontainer and execute command echo "HelloPythoncamp 2018!

07/04/2018 www.nico-maas.de 16 / 28

Page 17: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DEMO DOCKER BASICSDEMO DOCKER BASICSdocker container run -d nmaas87/docker-openwrtping 127.0.0.1 -c 50

Run ping cmd in deattached Modedocker container ps

Running containers

docker container attach a4fAttach to running container

Container "dies" as soon as the running root process(PID 1, here ping) ends

07/04/2018 www.nico-maas.de 17 / 28

Page 18: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DEMO DOCKER BASICSDEMO DOCKER BASICSdocker container run -it nmaas87/docker-openwrt/bin/sh

Run interactive shell in containerCTRL + P + Q

Disconnect from shelldocker container ps

Running containers

docker container attach a4fAttach to running container07/04/2018 www.nico-maas.de 18 / 28

Page 19: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DEMO DOCKERFILEDEMO DOCKERFILEUsed to build a new Docker Image / "recipe"

https://github.com/nmaas87/docker-demo

07/04/2018 www.nico-maas.de 19 / 28

Page 20: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DEMO DOCKERFILEDEMO DOCKERFILEgit clone

cd docker-demodocker image build –t app .

Create a Docker Image "app" from Dockerfile inthe current directory (.)

docker container run -p80:80 appStart new container from "app", expose containerport 80 to port 80 of the PC

Access via browserChange app.py, rebuild the image and restart

https://github.com/nmaas87/docker-demo.git

http://127.0.0.107/04/2018 www.nico-maas.de 20 / 28

Page 21: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DOCKER-COMPOSEDOCKER-COMPOSEUsed to execute and build images more easily

docker-compose.ymlRun container "flaskapp", restart even if service /Docker dies, use image "app", bind pc port 80 tocontainer port 80 (HOST:Container)Start with docker-compose up (-d withdeattached Mode)http://127.0.0.107/04/2018 www.nico-maas.de 21 / 28

Page 22: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DOCKER SWARMDOCKER SWARMRedundant Cluster of Docker Nodes, self-healing,routing overlay networkCreate swarm

Create Swarm on "Master/Manager" node:docker swarm init --advertise-addrPrints a CMD similar to:

docker swarm join --token :2377Execute on other Docker nodesDone07/04/2018 www.nico-maas.de 22 / 28

Page 23: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DOCKER SWARMDOCKER SWARMCreate service

docker service create --replicas 1 --name pingernmaas87/docker-openwrt:trunk_x86 pingdocker.com

docker service lsdocker service inspect --pretty pingerdocker service ps pingerdocker service scale pinger=3docker service rm pinger

07/04/2018 www.nico-maas.de 23 / 28

Page 24: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

DOCKER SWARMDOCKER SWARMUseful CMDs (on Manager!)

docker node lsdocker info

07/04/2018 www.nico-maas.de 24 / 28

Page 25: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

REALLIFEREALLIFE

07/04/2018 www.nico-maas.de 25 / 28

Page 26: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

GOGS / DRONE / MAVEN / JUNITGOGS / DRONE / MAVEN / JUNIT

07/04/2018 www.nico-maas.de 26 / 28

Page 27: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

SYSTEMSSYSTEMSwww.resin.io

Uses Docker as Deployment Method for Apps oni.e. Raspberry Pi or other Platforms

www.gogs.ioGitlab clone written in Go, packed as Dockercontainer

www.drone.ioCI System, packed as Docker container, usesplugins and addons also packed as Dockercontainer, builds code in Docker containers andworks great with Gogs07/04/2018 www.nico-maas.de 27 / 28

Page 28: DOCKER GRUNDLAGEN - Nico Maas€¦ · GRUNDLAGEN NICO MAAS PYTHONCAMP 2018 07/04/2018 1 / 28. WHO AM I? Nico Maas Master of Science IT Systemelektroniker mail@nico -maas.de -maas.de

QUESTIONS?QUESTIONS?Thank you for your attention :)

www.docker.com

www.play-with-docker.com

www.nico-maas.de

07/04/2018 www.nico-maas.de 28 / 28


Recommended