70
Docker From basics to orchestration

Talk on PHP Day Uruguay about Docker

Embed Size (px)

Citation preview

Page 1: Talk on PHP Day Uruguay about Docker

DockerFrom basics to orchestration

Page 2: Talk on PHP Day Uruguay about Docker

About me

Page 3: Talk on PHP Day Uruguay about Docker

Overview

Page 4: Talk on PHP Day Uruguay about Docker

Overview

● Environment issues● Virtualization● "Containerization"● Docker

○ Install○ Run○ Build○ Host

● Docker Machine● Docker Compose● Questions

Page 5: Talk on PHP Day Uruguay about Docker

Environment Issues

Page 6: Talk on PHP Day Uruguay about Docker

If you do this, you don't receive your:

Environment Issues

Page 7: Talk on PHP Day Uruguay about Docker

Examples:● substr vs mb_substr functions

Environment Issues

Page 8: Talk on PHP Day Uruguay about Docker

Environment Issues

Examples:● substr vs mb_substr functions● short open tag <?=

Page 9: Talk on PHP Day Uruguay about Docker

Environment Issues

Examples:● substr vs mb_substr functions● short open tag <?=● short array syntax (5.3- vs 5.4+): $a=[];

Page 10: Talk on PHP Day Uruguay about Docker

Environment Issues

Examples:● substr vs mb_substr functions● short open tag <?=● short array syntax (5.3- vs 5.4+): $a=[];● some custom installed extension on dev but

not on prod

Page 11: Talk on PHP Day Uruguay about Docker

Virtualization

Page 12: Talk on PHP Day Uruguay about Docker

● 1960 - cpu time sharing (inspiration)

Virtualization - History

Page 13: Talk on PHP Day Uruguay about Docker

Virtualization - History

● 1960 - cpu time sharing (inspiration)● IBM 370 - Designed for virtualization via

software (CP/CMS).

Page 14: Talk on PHP Day Uruguay about Docker

Virtualization - History

● 1960 - cpu time sharing (inspiration)● IBM 370 - Designed for virtualization via

software (CP/CMS).● IBM z/VM - first success case (via hardware)

Page 15: Talk on PHP Day Uruguay about Docker

Virtualization - History

● 1960 - cpu time sharing (inspiration)● IBM 370 - Designed for virtualization via

software (CP/CMS).● IBM z/VM - first success case (via hardware)● 1990+ - Hypervisors: VMWare, Xen, KVM,

VirtualBox, etc...

Page 16: Talk on PHP Day Uruguay about Docker

Virtualization - Hypervisors

Page 17: Talk on PHP Day Uruguay about Docker

Virtualization - Stack

Page 18: Talk on PHP Day Uruguay about Docker

Virtualization

● Standard environments

Page 19: Talk on PHP Day Uruguay about Docker

Virtualization

● Standard environments

● Improve resources usage

Page 20: Talk on PHP Day Uruguay about Docker

Virtualization

● Standard environments

● Improve resources usage

● Data recovery

Page 21: Talk on PHP Day Uruguay about Docker

Virtualization

● If host hardware fails every VMs fail

● Standard environments

● Improve resources usage

● Data recovery

Page 22: Talk on PHP Day Uruguay about Docker

Virtualization

● If host hardware fails every VMs fail

● Difficult troubleshooting

● Standard environments

● Improve resources usage

● Data recovery

Page 23: Talk on PHP Day Uruguay about Docker

Virtualization

● If host hardware fails every VMs fail

● Difficult troubleshooting

● New layer = Some Overhead

● Standard environments

● Improve resources usage

● Data recovery

Page 24: Talk on PHP Day Uruguay about Docker

Containers - LXC

● Since Jul/2008 - Kernel 2.6.26+

Page 25: Talk on PHP Day Uruguay about Docker

● Since Jul/2008 - Kernel 2.6.26+

● lxc-create, lxc-start, lxc-stop

Containers - LXC

Page 26: Talk on PHP Day Uruguay about Docker

Containers - LXC

● Since Jul/2008 - Kernel 2.6.26+

● lxc-create, lxc-start, lxc-stop

● Shares kernel libs and binaries with host

Page 27: Talk on PHP Day Uruguay about Docker

● Process isolation - 1 Linux PID (chroot)

Containers - LXC

Page 28: Talk on PHP Day Uruguay about Docker

Containers - LXC

● Process isolation - 1 Linux PID (chroot)● Network isolation

Page 29: Talk on PHP Day Uruguay about Docker

Containers - LXC

● Process isolation - 1 Linux PID (chroot)● Network isolation● Define memory limitation

Page 30: Talk on PHP Day Uruguay about Docker

Containers - LXC

● Process isolation - 1 Linux PID (chroot)● Network isolation● Define memory limitation● IO overhead - difficult to share host

volumes with guests

Page 31: Talk on PHP Day Uruguay about Docker

Docker

Page 32: Talk on PHP Day Uruguay about Docker

Docker

Page 33: Talk on PHP Day Uruguay about Docker

Docker

Page 34: Talk on PHP Day Uruguay about Docker

● Copy on write (AUFS)

Docker

Page 35: Talk on PHP Day Uruguay about Docker

● Copy on write (AUFS)● Logging (stdout, stderr, stdin)

Docker

Page 36: Talk on PHP Day Uruguay about Docker

● Copy on write (AUFS)● Logging (stdout, stderr, stdin)● Change management (imgs)

Docker

Page 37: Talk on PHP Day Uruguay about Docker

● Copy on write (AUFS)● Logging (stdout, stderr, stdin)● Change management (imgs)● Automatic build (Dockerfile)

Docker

Page 38: Talk on PHP Day Uruguay about Docker

● Copy on write (AUFS)● Logging (stdout, stderr, stdin)● Change management (imgs)● Automatic build (Dockerfile)● Reusable (FROM: imagename)

Docker

Page 39: Talk on PHP Day Uruguay about Docker

● Copy on write (AUFS)● Logging (stdout, stderr, stdin)● Change management (imgs)● Automatic build (Dockerfile)● Reusable (FROM: imagename)● Easy to share (registry - docker hub)

Docker

Page 40: Talk on PHP Day Uruguay about Docker

Docker

● Copy on write (AUFS)● Logging (stdout, stderr, stdin)● Change management (imgs)● Automatic build (Dockerfile)● Reusable (FROM: imagename)● Easy to share (registry - docker hub)● Private and public registry

Page 41: Talk on PHP Day Uruguay about Docker

● API layer (REST)

Docker

Page 42: Talk on PHP Day Uruguay about Docker

Docker

● API layer (REST)● Fast innovations (compose, machine,

swarm, network)

Page 43: Talk on PHP Day Uruguay about Docker

Docker

Awesome

Page 44: Talk on PHP Day Uruguay about Docker

Docker - Comparison

Page 45: Talk on PHP Day Uruguay about Docker

Docker - Comparison

● Start realy fast

Page 46: Talk on PHP Day Uruguay about Docker

Docker - Comparison

● Start realy fast● Smaller images

Page 47: Talk on PHP Day Uruguay about Docker

Docker - Comparison

● Start realy fast● Smaller images● Easy replication

Page 48: Talk on PHP Day Uruguay about Docker

Docker - Comparison

● Start realy fast● Smaller images● Easy replication● Better resources

utilization

Page 49: Talk on PHP Day Uruguay about Docker

Docker - Comparison

● Start realy fast● Smaller images● Easy replication● Better resources

utilization

● IO overhead

Page 50: Talk on PHP Day Uruguay about Docker

Docker - Comparison

● Start realy fast● Smaller images● Easy replication● Better resources

utilization

● IO overhead● Not too isolated

Page 51: Talk on PHP Day Uruguay about Docker

Docker - Comparison

● Start realy fast● Smaller images● Easy replication● Better resources

utilization

● IO overhead● Not too isolated● Linux ONLY

Page 52: Talk on PHP Day Uruguay about Docker

Docker - Quick Tips

● It's Container not a VM

Page 53: Talk on PHP Day Uruguay about Docker

Docker - Quick Tips

● It's Container not a VM● Why container - because it solves cargo

transport matrix

Page 54: Talk on PHP Day Uruguay about Docker

Docker - Quick Tips

● It's Container not a VM● Why container - because it solves cargo

transport matrix● Why docker, because of docks

Page 55: Talk on PHP Day Uruguay about Docker

Docker - Quick Tips

● It's Container not a VM● Why container - because it solves cargo

transport matrix● Why docker, because of docks● Images are states, Containers runs it

Page 56: Talk on PHP Day Uruguay about Docker

● Go http://docs.docker.com/installation

Docker - Install

Page 57: Talk on PHP Day Uruguay about Docker

● Go http://docs.docker.com/installation● Find you host OS

Docker - Install

Page 58: Talk on PHP Day Uruguay about Docker

● Go http://docs.docker.com/installation● Find you host OS● Follow the instructions

Docker - Install

Page 59: Talk on PHP Day Uruguay about Docker

● Go http://docs.docker.com/installation● Find you host OS● Follow the instructions● FreeBSD hosts will be supported soon

Docker - Install

Page 60: Talk on PHP Day Uruguay about Docker

● Go http://docs.docker.com/installation● Find you host OS● Follow the instructions● FreeBSD hosts will be supported soon● MacOS and Windows needs a VM to act as a

Host - boot2docker sugested

Docker - Install

Page 61: Talk on PHP Day Uruguay about Docker

Docker - Basics

"Talk is cheap, show me the code."Linus Torvalds

Page 62: Talk on PHP Day Uruguay about Docker

● Volume sharing● Port expose/mapping● Links between containers

Docker - Medium

Page 63: Talk on PHP Day Uruguay about Docker

Docker Machine

Creates virtual machines ready to run docker locally or on the cloud.

Page 64: Talk on PHP Day Uruguay about Docker

● Docker Compose (Old FIG) https://docs.docker.com/compose/install/

● Crane - http://getcrane.com● AZK - http://azk.io

Orchestration

Page 65: Talk on PHP Day Uruguay about Docker

Docker Compose

Page 66: Talk on PHP Day Uruguay about Docker

Docker Compose

Page 67: Talk on PHP Day Uruguay about Docker

● Docker Swarm

Docker - Other Cool Stuff

Page 68: Talk on PHP Day Uruguay about Docker

● Docker Swarm● Docker Network

Docker - Other Cool Stuff

Page 69: Talk on PHP Day Uruguay about Docker

● Docker Swarm● Docker Network● OpenContainers - Linux Foundation

Docker - Other Cool Stuff

Page 70: Talk on PHP Day Uruguay about Docker

Slides

Questions

Evaluation