+ All Categories
Home > Documents > DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm...

DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm...

Date post: 20-May-2020
Category:
Upload: others
View: 115 times
Download: 3 times
Share this document with a friend
45
Transcript
Page 1: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry
Page 2: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

DOCKER 101Raju Gandhi

Page 3: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

RAJU GANDHI! " # @LOOSELYTYPED CTO - INTEGRALLIS SOFTWARE

Page 4: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

WHY?

Page 5: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

BUILD ONCE, RUN ANYWHERE

Page 6: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Image

Registry

Container

pullpush

commit run

Page 7: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

WHY?

- Local application development and testing

- Team (and OSS) collaboration

- Ci/Cd

Page 8: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

CONTAINERS?

Page 9: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

CGROUPS

Page 10: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

NAMESPACES

Page 11: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

JAILS

Page 12: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry
Page 13: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

CONTAINERS

- A container is a lightweight virtual runtime*

- Share the host kernel

- CPU/Memory/Network/File system isolation

- Own their on hostname, users, networking stack

Page 14: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

NAMESPACES

“What you can see”

Page 15: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

NAMESPACES

• Isolation of

• Users

• Filesystem

• Process trees

• Network

• IPC

Page 16: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

CGROUPS

“What you can use”

Page 17: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

CGROUPS

• Limiting/Metering/ACL

• CPU

• Memory

• I/O

• Network

• Device permissions

Page 18: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

VM? CONTAINERS?

Page 19: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Server

Host OS

Hypervisor

Guest OS

Libs

App A

Guest OS

Libs

App A*

Guest OS

Libs

App B

VM

Page 20: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Server

Host OS

Docker Engine

Libs

Libs

App A

App A*

App A

App A*

App A

App A*

Server

Host OS

Hypervisor

Guest OS

Libs

App A

Guest OS

Libs

App A*

Guest OS

Libs

App B

VM

Container

Libs

Libs

Libs

Libs

Page 21: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

TERMINOLOGY

Page 22: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

TERMINOLOGY

- Docker Engine

- Docker client

- Dockerfile

- Docker Machine

- Docker Compose

- Docker Stack

- Docker Swarm

- Docker Hub

Page 23: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

INSTALLATION

Page 25: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

WORKFLOW

Page 26: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

client

Dockerfile

Image Registry

Container

build

push

run create start

pull

Modifies

commit

docker engine

Page 27: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

WHAT IS A CONTAINER?

Page 28: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Host OS (Kernel)

Base Image

Writeable layer

your changes

Image

Container

Page 29: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Host OS (Kernel)

Base Image

New Layer

commit

Image

Page 30: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Host OS (Kernel)

Base Image

New Layer

Image

run <new-image>

Writeable layer Container

Page 31: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

NETWORK

Page 32: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Logical Host Interface

Docker Bridge

Container

docker run -it --net none --rm alpine /bin/sh

Page 33: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Logical Host Interface

Docker Bridge

Container

docker run -it --rm alpine /bin/sh

Container Interface

Page 34: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Logical Host Interface

Docker Bridge

Container

docker run -it --rm -p 8080:8080 alpine /bin/sh

Container Interface

Page 35: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

VOLUME

Page 36: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Host filesystem

Container

docker run -it --rm ubuntu /bin/bash

Docker managed space

Page 37: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Host filesystem

Container

docker run -it -v /host/path:/tmp ubuntu /bin/bash

Docker managed space

Page 38: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

DOCKER COMPOSE

Page 39: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

DOCKER COMPOSE

• A system is usually made up of multiple containers

• Containers depend on each other

• Orchestration

• Single host

Page 40: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

DOCKER COMPOSE

• Define multi-container applications in a single file

• Supports scaling, healing

• Single host

Page 41: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

serviceB

serviceA

db

Dockerfile

docker-compose.yml

config

Dockerfile

config

Dockerfile

config

depends_on

Page 42: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

CONS

Page 43: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

CONS

- Orchestration/composition tooling still rudimentary

- Native Docker implementations still buggy

- Most existing monitoring/logging are host centric, not process centric

Page 44: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

THANKS!!

Page 45: DOCKER 101 - DeveloperMarch€¦ · -Docker Machine -Docker Compose -Docker Stack -Docker Swarm -Docker Hub. INSTALLATION. INSTALLATION. WORKFLOW. client Dockerfile Image Registry

Recommended