Slide 1

Slide 1 text

Docker / Teil 1 1 1 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev

Slide 2

Slide 2 text

Was ist Docker? docker.com Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. 2 2 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev

Slide 3

Slide 3 text

Was ist ein Container? 3 3

Slide 4

Slide 4 text

Bare-Metal Server 4 4 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev

Slide 5

Slide 5 text

Virtuelle Maschine 5 5

Slide 6

Slide 6 text

Container 6 6 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev

Slide 7

Slide 7 text

Container sind abgeschottete Prozesse Linux Namespaces (Linux Kernel Feature) mount process network ipc (Interprocess Communication) cgroups (verstecken von Prozesssen) 7 7

Slide 8

Slide 8 text

Was ist im Container? 8 8 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev

Slide 9

Slide 9 text

Docker Verbindet bestehende Technologien Ökosystem (Hub, Community) Diverse Tools (docker-compose, docker- machine, Swarm, Toolbox) Bereitstellung auf verschiedenen Host- Betriebssystemen (Windows, Mac, Linux) Format für Container Vorlagen (Images) 9 9 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev

Slide 10

Slide 10 text

Docker Image Fertiges Abbild eines Containers Aufbau in Schichten (Image kann Basis-Image haben) Kann schnell aktualisiert und getauscht werden Build -> Ship -> Run 10 10 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev

Slide 11

Slide 11 text

Beispiel NodeJS Anwendung const express = require('express') const app = express() app.get('/', (req, res) => res.send('Hallo Linux Stammtisch Worms!')) app.listen(3000, () => console.log('Server ready')) 11 11 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev

Slide 12

Slide 12 text

FROM node:14 WORKDIR /app COPY package*.json app.js ./ RUN npm install EXPOSE 3000 CMD ["node", "app.js"] 12 12 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev

Slide 13

Slide 13 text

Resourcen Video von Chris Tamkersley https://youtu.be/EfpVgKtqZVw Node-Example: https://flaviocopes.com/docker- node-container-example/ https://en.wikipedia.org/wiki/Linux_namespaces https://www.docker.com https://training.play-with-docker.com/ https://labs.play-with-docker.com/ 13 13 Christian Münch / @cmuench / muench.dev Christian Münch / @cmuench / muench.dev