docker containers linuxday2015 - particles.io · 2015 virtual machine docker container host os nel...

22
An open platform for distributed applications for developers and sysadmins Una piattaforma open per sviluppatori e sysadmins per la distribuzione delle applicazioni 2015

Upload: others

Post on 15-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

An open platform for distributed applications for developers and sysadmins

Una piattaforma open per sviluppatori e sysadmins per la distribuzione delle applicazioni

2015

Page 2: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015Cos’è un’applicazione?

OS Base

OS Custom

Binary

Library

Source

Application

Linux Debian, Ubuntu, CentOS, ecc.

Updates, Packages

Apache, JVM, Ruby, Perl, PHP, Python, cURL

Git, Subversion, Files

Running Application or Service

libjpeg, libxml, ImageMagick, libGeoIP, etc.

Page 3: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

JackSysAdmin

BobDeveloper

JoeDeveloper

OS Base

OS Custom

Binary

Library

Source

Application

MyApp 1.0

OS Base

OS Custom

Binary

Library

Source

Application

MyApp 1.1

OS Base

OS Custom

Binary

Library

Source

Application

DevOps

Page 4: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

JackSysAdmin

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

Infrastructures

Page 5: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

JackSysAdmin

BobDeveloper

JoeDeveloper

OS Base

OS Custom

Binary

Library

Source

Application

MyApp 1.2

OS Base

OS Custom

Source

Application

MyApp 1.2

OS Base

OS Custom

Binary

Library

Source

Application

Updates

Binary

LibraryX X

Page 6: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

From stack to image

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

Page 7: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

JackSysAdmin

BobDeveloper

JoeDeveloper

OS Base

OS Custom

Binary

Library

Source

Application

DevOps

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

Page 8: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015JackSysAdmin

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

Page 9: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

JackSysAdmin

BobDeveloper

JoeDeveloper

OS Base

OS Custom

Binary

Library

Source

Application

Centralized

Public or Private Repository

Page 10: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

Container IS NOT

a Virtual Machine

Page 11: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

Docker ContainerVirtual Machine

Hos

t OS

Kern

el

system calls

Kern

el

Kern

el

Guest OS /usr /bin /var /etc

Guest OS /usr /bin /var /etc

system calls

Hyp

ervi

sor

Har

dwar

e

Host OS /usr /bin /var /etc

Kern

el

Guest OS /usr /bin /var /etc

Guest OS /usr /bin /var /etc

system calls

Har

dwar

e

Overhead

Page 12: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015Performance

RAM

CPU

I/O

100%

100%

100%

RAM

CPU

I/O

80%

65%

50%

Docker ContainerVirtual Machine

Page 13: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

Image Size (OS Stack:): 1GB Application Size: 100MB

4 Running Applications: 1,4 GB

Image Size (OS Stack): 1GB Application Size: 100MB

4 Running Applications: 4,4 GB

Size

OS

APP

OS

APP

OS

APP

OS

APP

Virtual Machine

OS

APP APP APP APP

Docker Container

Page 14: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

OS Base

OS Custom

Binary

Library

AuFS

Source

Application

Read Only

Read / Write

Layered Filesystem

Container

Page 15: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

Layered FilesystemAuFS

Image 1.0

Container

Add GIT

Image 1.1

Image 1.0

Add Apache

Container

Image 1.0

Container

Image 1.1

Image 1.2

Add Source

Page 16: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015Cos’è Docker?• Packaging System

Creazione e gestione delle immagini

• Container EngineAmbienti up & running logicamente separati

• Container Repository Push & Pull delle immagini e controllo di versione

Page 17: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015Open Platform

• Linux Support only • Apache License / Free to use • Open Source / Github

Page 18: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015Packaging System

Image Add Apache Image

Pull Image

Run Container

Modify Container

Commit

Push Image

Page 19: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015Container Engine

Linux Server (host)192.168.1.1

Apache n1 172.0.0.16

MySQL Master 172.0.0.18

Apache n1 172.0.0.17 MySQL Slave

172.0.0.19

Memcached 172.0.0.20

Page 20: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015Container Engine

Apache n1

Apache n2

Internet

MySQL Master

MySQL Slave

Memcached

Page 21: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015Container Repository

hub.docker.com

Page 22: Docker Containers LinuxDay2015 - particles.io · 2015 Virtual Machine Docker Container Host OS nel system calls nel nel Guest OS /usr /bin /var /etc Guest OS /usr /bin /var /etc system

2015

Thanks!

The End

www.particles.io