SlideShare a Scribd company logo
Introduzione a Docker 30 nov
2017
Sponsored by
Roberto Messora
“
”
Chi sono
@robymes
robymes@gmail.com
roberto.messora@valuelab.it
robymes
Roberto Messora
L’esigenza
• Minimizzare fino ad eliminare il problema del deployment
in diversi ambienti di esecuzione
• Ottimizzare al massimo l'uso delle risorse hw (startup time
e densità di allocazione)
1/19
Capitolo 1
2/19
3/19
La tecnologia
“A container image is a lightweight, stand-alone, executable
package of a piece of software that includes everything
needed to run it: code, runtime, system tools, system
libraries, settings. Available for both Linux and Windows
based apps, containerized software will always run the
same, regardless of the environment. Containers isolate
software from its surroundings, for example differences
between development and staging environments and help
reduce conflicts between teams running different software
on the same infrastructure.”
4/19
Capitolo 2
Un po’ di storia
5/19
• Sviluppato inizialmente come progetto interno in dotCloud,
una società che si occupava di servizi PaaS
• Pubblicato su github come progetto open source nel
Marzo 2013
• Nel Marzo 2014 viene rilasciata la sua principale libreria,
libcontainer, sviluppata in Go
• Fra i maggiori contributori del progetto ci sono: il team di
Docker, Cisco, Google, Huawei, IBM, Microsoft, Red Hat
Dockersu Linux
6/19
• Docker è un progetto open-source che automatizza il
deployment di applicazioni all'interno di container software,
fornendo un'astrazione addizionale grazie alla
virtualizzazione a livello di sistema operativo di Linux
• Utilizza le funzionalità di isolamento delle risorse del kernel
Linux per consentire a container indipendenti di coesistere
sulla stessa istanza di Linux, evitando l'installazione e la
manutenzione di una macchina virtuale
• Le risorse possono essere isolate, i servizi limitati ed i
processi avviati in modo da avere una prospettiva
completamente privata del sistema operativo, col loro
proprio identificativo, file system ed interfaccia di rete
Dockersu Linux
7/19
• Namespace del kernel: isolano ciò che l'applicazione
può vedere dell'ambiente operativo (l'albero dei processi,
la rete, gli ID utente ed i file system montati)
• Cgroups del kernel: isolamento delle risorse (CPU,
memoria, I/O a blocchi, rete)
• Libreria libcontainer: uso delle funzionalità di
virtualizzazione del kernel
8/19
9/19
Dockersu Windows
10/19
• Con Windows Server 2016 Docker è disponibile
nativamente anche su Windows
• I principi di base sono gli stessi di Linux: accesso limitato
e controllato alle risorse del kernel
• Un container Linux NON può essere ospitato su un host
Windows e viceversa: i kernel sono differenti, le API
utilizzate dal container sono specifiche per i due sistemi
operativi (API Windows e API Linux)
• Un client Docker è in grado di supportare entrambe le API:
un solo prodotto per enrambi i sistemi operativi
Dockersu Windows
11/19
• I container Windows sono di due tipi
• Windows Container: i container condividono il kernel
con il sistema operativo host (Windows Server 2016),
altamente efficienti, ma adatti per ambienti trusted
• Hyper-V Container: ad ogni container è assegnato un
kernel virtualizzato e le relative risorse (CPU, memoria,
…), meno efficienti, ma isolamento totale
L’ecosistema
L’ecosistema Docker è composto da una serie di elementi
• Docker Engine
• Docker Machine
• Docker Compose
• Docker Swarm
• Docker Registry
12/19
Capitolo 3
13/19
Docker Engine
Docker Machine
Sviluppare con Docker 14/19
Capitolo 4
• Dockerfile
• Docker registry
• Docker-compose file
• Ottimizzare build-time e run-time
Demo
Dal Dockerfile al Docker Registry
Deploy con Docker 15/19
Capitolo 5
• One engine to rule them all
• CI/CD Docker pattern
• Production ready: Houston we need a cluster
16/19
Dockerin production:Swarm
17/19
ClustersDocker-ready
18/19
• Docker Swarm
• Apache Mesos
• Mesosphere DC/OS
• Kubernetes
• Service Fabric
Demo
Real world Docker Swarm
19/19
Grazie
Roberto Messora

More Related Content

What's hot

초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문
Daniel Seo
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Pubudu Jayawardana
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
Krishna-Kumar
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefits
Amit Manwade
 
Docker, LinuX Container
Docker, LinuX ContainerDocker, LinuX Container
Docker, LinuX Container
Araf Karsh Hamid
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to Docker
Jian Wu
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
Ajeet Singh Raina
 
Rootless Containers
Rootless ContainersRootless Containers
Rootless Containers
Akihiro Suda
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into Containerd
Kohei Tokunaga
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
Ji-Woong Choi
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and image
ejlp12
 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Daniel Oh
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
fazalraja
 
[KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
 [KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui... [KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
[KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
Akihiro Suda
 
Docker
DockerDocker
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
Nguyen Van Vuong
 
Docker 101: An Introduction
Docker 101: An IntroductionDocker 101: An Introduction
Docker 101: An Introduction
POSSCON
 
Paul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery FrameworkPaul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery Framework
ShapeBlue
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
Docker, Inc.
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
Ravindu Fernando
 

What's hot (20)

초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefits
 
Docker, LinuX Container
Docker, LinuX ContainerDocker, LinuX Container
Docker, LinuX Container
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to Docker
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
Rootless Containers
Rootless ContainersRootless Containers
Rootless Containers
 
Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into ContainerdIntroduction and Deep Dive Into Containerd
Introduction and Deep Dive Into Containerd
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and image
 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
[KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
 [KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui... [KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
[KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
 
Docker
DockerDocker
Docker
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
Docker 101: An Introduction
Docker 101: An IntroductionDocker 101: An Introduction
Docker 101: An Introduction
 
Paul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery FrameworkPaul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery Framework
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 

Similar to Introduzione a Docker

Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
Roberto Messora
 
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
Gerardo Di Iorio
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
Better Software
 
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
Mirko Mancin
 
Docker la rivoluzione nel deployment
Docker la rivoluzione nel deploymentDocker la rivoluzione nel deployment
Docker la rivoluzione nel deployment
Mauro Cicolella
 
debian gnu linux
debian gnu linuxdebian gnu linux
Software libero at ENEA
Software libero at ENEASoftware libero at ENEA
Software libero at ENEA
NaLUG
 
Da DotNet a DotNetCore
Da DotNet a DotNetCoreDa DotNet a DotNetCore
Da DotNet a DotNetCore
Raffaele Rialdi
 
Fabio Riccio - Un'esperienza di free-software nelle scuole
Fabio Riccio - Un'esperienza di free-software nelle scuoleFabio Riccio - Un'esperienza di free-software nelle scuole
Fabio Riccio - Un'esperienza di free-software nelle scuole
Maurizio Antonelli
 
Corso linux base
Corso linux baseCorso linux base
Corso linux base
Beniamino Ferrari
 
Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxAmministrazione base dei sistemi Linux
Amministrazione base dei sistemi Linux
Paolo Campegiani
 
Docker - virtualizzazione leggera
Docker - virtualizzazione leggeraDocker - virtualizzazione leggera
Docker - virtualizzazione leggera
Roberto Polli
 
Alfresco meetup Roma - docker
Alfresco meetup Roma - dockerAlfresco meetup Roma - docker
Alfresco meetup Roma - docker
David Ciamberlano
 
Introduzione CMS Alfresco
Introduzione CMS AlfrescoIntroduzione CMS Alfresco
Introduzione CMS Alfresco
Mirco Leo
 
Microservizi & DevOps
Microservizi & DevOpsMicroservizi & DevOps
Microservizi & DevOps
Antonio Liccardi
 
Open Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspOpen Source Parallel Computing ltcsp
Open Source Parallel Computing ltcsp
Laura Camellini
 
Introduzione a .Net Core
Introduzione a .Net CoreIntroduzione a .Net Core
Introduzione a .Net Core
Antonio Di Motta
 
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...Maurizio Antonelli
 
DevOps in a Microservices World
DevOps in a Microservices WorldDevOps in a Microservices World
DevOps in a Microservices World
Antonio Liccardi
 

Similar to Introduzione a Docker (20)

Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
 
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
 
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
 
Docker la rivoluzione nel deployment
Docker la rivoluzione nel deploymentDocker la rivoluzione nel deployment
Docker la rivoluzione nel deployment
 
debian gnu linux
debian gnu linuxdebian gnu linux
debian gnu linux
 
Software libero at ENEA
Software libero at ENEASoftware libero at ENEA
Software libero at ENEA
 
prova
provaprova
prova
 
Da DotNet a DotNetCore
Da DotNet a DotNetCoreDa DotNet a DotNetCore
Da DotNet a DotNetCore
 
Fabio Riccio - Un'esperienza di free-software nelle scuole
Fabio Riccio - Un'esperienza di free-software nelle scuoleFabio Riccio - Un'esperienza di free-software nelle scuole
Fabio Riccio - Un'esperienza di free-software nelle scuole
 
Corso linux base
Corso linux baseCorso linux base
Corso linux base
 
Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxAmministrazione base dei sistemi Linux
Amministrazione base dei sistemi Linux
 
Docker - virtualizzazione leggera
Docker - virtualizzazione leggeraDocker - virtualizzazione leggera
Docker - virtualizzazione leggera
 
Alfresco meetup Roma - docker
Alfresco meetup Roma - dockerAlfresco meetup Roma - docker
Alfresco meetup Roma - docker
 
Introduzione CMS Alfresco
Introduzione CMS AlfrescoIntroduzione CMS Alfresco
Introduzione CMS Alfresco
 
Microservizi & DevOps
Microservizi & DevOpsMicroservizi & DevOps
Microservizi & DevOps
 
Open Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspOpen Source Parallel Computing ltcsp
Open Source Parallel Computing ltcsp
 
Introduzione a .Net Core
Introduzione a .Net CoreIntroduzione a .Net Core
Introduzione a .Net Core
 
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
 
DevOps in a Microservices World
DevOps in a Microservices WorldDevOps in a Microservices World
DevOps in a Microservices World
 

More from Roberto Messora

Azure Synapse: data lake & modern data warehouse dalla A alla Z
Azure Synapse: data lake &  modern data warehouse dalla A alla ZAzure Synapse: data lake &  modern data warehouse dalla A alla Z
Azure Synapse: data lake & modern data warehouse dalla A alla Z
Roberto Messora
 
Azure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integrationAzure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integration
Roberto Messora
 
Seminario Big Data
Seminario Big DataSeminario Big Data
Seminario Big Data
Roberto Messora
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
Roberto Messora
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
Roberto Messora
 
Docker as a hosting target
Docker as a hosting targetDocker as a hosting target
Docker as a hosting target
Roberto Messora
 
Da imperativo a reattivo: Bacon.JS
Da imperativo a reattivo: Bacon.JSDa imperativo a reattivo: Bacon.JS
Da imperativo a reattivo: Bacon.JS
Roberto Messora
 
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extensionEvent streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Roberto Messora
 
Code quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScriptCode quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScript
Roberto Messora
 
Single Page Applications
Single Page ApplicationsSingle Page Applications
Single Page Applications
Roberto Messora
 
Javascript Unit Testing
Javascript Unit TestingJavascript Unit Testing
Javascript Unit Testing
Roberto Messora
 
Single Page web Application
Single Page web ApplicationSingle Page web Application
Single Page web Application
Roberto Messora
 
Javascript avanzato: sfruttare al massimo il web
Javascript avanzato: sfruttare al massimo il webJavascript avanzato: sfruttare al massimo il web
Javascript avanzato: sfruttare al massimo il web
Roberto Messora
 
Self-adaptive geospatial web applications
Self-adaptive geospatial web applicationsSelf-adaptive geospatial web applications
Self-adaptive geospatial web applicationsRoberto Messora
 
Web technologies and patterns in HTML5 mapping
Web technologies and patterns in HTML5 mappingWeb technologies and patterns in HTML5 mapping
Web technologies and patterns in HTML5 mappingRoberto Messora
 
Usare Knockout JS
Usare Knockout JSUsare Knockout JS
Usare Knockout JS
Roberto Messora
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!
Roberto Messora
 

More from Roberto Messora (17)

Azure Synapse: data lake & modern data warehouse dalla A alla Z
Azure Synapse: data lake &  modern data warehouse dalla A alla ZAzure Synapse: data lake &  modern data warehouse dalla A alla Z
Azure Synapse: data lake & modern data warehouse dalla A alla Z
 
Azure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integrationAzure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integration
 
Seminario Big Data
Seminario Big DataSeminario Big Data
Seminario Big Data
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Docker as a hosting target
Docker as a hosting targetDocker as a hosting target
Docker as a hosting target
 
Da imperativo a reattivo: Bacon.JS
Da imperativo a reattivo: Bacon.JSDa imperativo a reattivo: Bacon.JS
Da imperativo a reattivo: Bacon.JS
 
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extensionEvent streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extension
 
Code quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScriptCode quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScript
 
Single Page Applications
Single Page ApplicationsSingle Page Applications
Single Page Applications
 
Javascript Unit Testing
Javascript Unit TestingJavascript Unit Testing
Javascript Unit Testing
 
Single Page web Application
Single Page web ApplicationSingle Page web Application
Single Page web Application
 
Javascript avanzato: sfruttare al massimo il web
Javascript avanzato: sfruttare al massimo il webJavascript avanzato: sfruttare al massimo il web
Javascript avanzato: sfruttare al massimo il web
 
Self-adaptive geospatial web applications
Self-adaptive geospatial web applicationsSelf-adaptive geospatial web applications
Self-adaptive geospatial web applications
 
Web technologies and patterns in HTML5 mapping
Web technologies and patterns in HTML5 mappingWeb technologies and patterns in HTML5 mapping
Web technologies and patterns in HTML5 mapping
 
Usare Knockout JS
Usare Knockout JSUsare Knockout JS
Usare Knockout JS
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!
 

Introduzione a Docker

  • 1. Introduzione a Docker 30 nov 2017 Sponsored by Roberto Messora
  • 3. L’esigenza • Minimizzare fino ad eliminare il problema del deployment in diversi ambienti di esecuzione • Ottimizzare al massimo l'uso delle risorse hw (startup time e densità di allocazione) 1/19 Capitolo 1
  • 6. La tecnologia “A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Available for both Linux and Windows based apps, containerized software will always run the same, regardless of the environment. Containers isolate software from its surroundings, for example differences between development and staging environments and help reduce conflicts between teams running different software on the same infrastructure.” 4/19 Capitolo 2
  • 7. Un po’ di storia 5/19 • Sviluppato inizialmente come progetto interno in dotCloud, una società che si occupava di servizi PaaS • Pubblicato su github come progetto open source nel Marzo 2013 • Nel Marzo 2014 viene rilasciata la sua principale libreria, libcontainer, sviluppata in Go • Fra i maggiori contributori del progetto ci sono: il team di Docker, Cisco, Google, Huawei, IBM, Microsoft, Red Hat
  • 8. Dockersu Linux 6/19 • Docker è un progetto open-source che automatizza il deployment di applicazioni all'interno di container software, fornendo un'astrazione addizionale grazie alla virtualizzazione a livello di sistema operativo di Linux • Utilizza le funzionalità di isolamento delle risorse del kernel Linux per consentire a container indipendenti di coesistere sulla stessa istanza di Linux, evitando l'installazione e la manutenzione di una macchina virtuale • Le risorse possono essere isolate, i servizi limitati ed i processi avviati in modo da avere una prospettiva completamente privata del sistema operativo, col loro proprio identificativo, file system ed interfaccia di rete
  • 9. Dockersu Linux 7/19 • Namespace del kernel: isolano ciò che l'applicazione può vedere dell'ambiente operativo (l'albero dei processi, la rete, gli ID utente ed i file system montati) • Cgroups del kernel: isolamento delle risorse (CPU, memoria, I/O a blocchi, rete) • Libreria libcontainer: uso delle funzionalità di virtualizzazione del kernel
  • 10. 8/19
  • 11. 9/19
  • 12. Dockersu Windows 10/19 • Con Windows Server 2016 Docker è disponibile nativamente anche su Windows • I principi di base sono gli stessi di Linux: accesso limitato e controllato alle risorse del kernel • Un container Linux NON può essere ospitato su un host Windows e viceversa: i kernel sono differenti, le API utilizzate dal container sono specifiche per i due sistemi operativi (API Windows e API Linux) • Un client Docker è in grado di supportare entrambe le API: un solo prodotto per enrambi i sistemi operativi
  • 13. Dockersu Windows 11/19 • I container Windows sono di due tipi • Windows Container: i container condividono il kernel con il sistema operativo host (Windows Server 2016), altamente efficienti, ma adatti per ambienti trusted • Hyper-V Container: ad ogni container è assegnato un kernel virtualizzato e le relative risorse (CPU, memoria, …), meno efficienti, ma isolamento totale
  • 14. L’ecosistema L’ecosistema Docker è composto da una serie di elementi • Docker Engine • Docker Machine • Docker Compose • Docker Swarm • Docker Registry 12/19 Capitolo 3
  • 16. Sviluppare con Docker 14/19 Capitolo 4 • Dockerfile • Docker registry • Docker-compose file • Ottimizzare build-time e run-time
  • 17. Demo Dal Dockerfile al Docker Registry
  • 18. Deploy con Docker 15/19 Capitolo 5 • One engine to rule them all • CI/CD Docker pattern • Production ready: Houston we need a cluster
  • 19. 16/19
  • 21. ClustersDocker-ready 18/19 • Docker Swarm • Apache Mesos • Mesosphere DC/OS • Kubernetes • Service Fabric
  • 23. 19/19