Introduzione pratica a docker, da chi lo ha appena conosciuto
-
Upload
daniele-megna -
Category
Software
-
view
457 -
download
2
Transcript of Introduzione pratica a docker, da chi lo ha appena conosciuto
Introduzione pratica a Docker… da chi lo ha appena conosciuto!
Milano 26.03.2015 @pugmi
di Daniele Megna
@DanieleMegna1 - about.me/danielemegna
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Daniele Megna
I'm a passionate junior web software developer from MIlan.
@DanieleMegna1 - about.me/danielemegna
Nyx Web Solutionsnyx.solutions
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
28-29 Novembre 2014Codemotion Milano 2014@ Politecnico di Milano, Bovisa
Quellaroba che
VIRTUALIZZIma in realtà
NON VIRTUALIZZI
E’ come le macchine
virtuali, ma le istruzioni
vanno dirette sul processore
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
https://www.youtube.com/watch?v=Ngy9BWH26Y4
Una definizione PRATICA
Carlo Bonamico, intervista al Codemotion 2014 di Milano: cos’è Docker in due minuti
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
“ Un sitema di Container-izzazione che assomiglia ai tradizionali sistemi di virtualizzazione. [...]Invece di avere un intero sistema di operativo che gira dentro un altro sistema operativo, sfrutta una caratteristica del kernel di Linux [...] che permette di dividere lo spazio di esecuzione della macchina , in contenitori dedicati alle diverse applicazioni”
- Carlo Bonamico
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Your words are
futile, your
schemas too.
I don’t believe
you, let me
try.
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Installiamolo (su linux ubuntu, debian, etc ..)
$ wget -qO- https://get.docker.com/ | sh
per la versione apt-get maintained(may not be the latest Docker release)
per l’ultima versione ufficiale
$ sudo apt-get install docker.io
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Demo 1: simple apache2 container
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Demo 1: cosa abbiamo visto
$ docker pull NOME_IMMAGINE
per scaricare un immagine da Docker Hub
$ docker search NOME_IMMAGINE
per cercare una immagine in Docker Hub
$ docker images
panoramica delle immagini disponibili sulla macchina host
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Demo 1: cosa abbiamo visto
per avviare un nuovo container interattivo, che usa una determinata immagineed avviare una tty all’interno del nuovo container
$ docker run -it NOME_IMMAGINE
panoramica dei container attivi e quelli inattivi
$ docker ps
$ docker ps -a
per fare commit (locale) delle modifiche effettuate sul containere crearne una nuova immagine con un nuovo nome
$ docker commit ID_CONTAINER NOME_IMMAGINE
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Demo 1: cosa abbiamo visto
$ docker run -it -p 80:80 NOME_IMMAGINE
avviare un nuovo container interattivo, che usa una determinata immaginee fa forwarding della porta 80 sulla macchina host
(ed avviare una tty all’interno del nuovo container)
$ docker rm ID_CONTAINER
$ docker rmi IMMAGINE
fare pulizia dei container e delle immagini non più utili
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Concetto base:
● Partenza da una immagine del Docker hub (o non)
● Customizzazione di tale immagine
● Commit del container in nuova immagine
● Riutilizzo delle immagini custom
Il sistema di versioning a layer permette di minimizzare il peso delle immagini e velocizzare i trasferimenti
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Perchè non scriptare la cosa?
I “Dockerfile” ci permettono di definire la ricetta (di fatto i passaggi da eseguire in fase di build) per creare l’immagine di cui abbiamo bisogno a partire da una immagine di partenza. In questo modo, possiamo includerlo nel repository del nostro progetto.
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Really we can
do that?
...let me try
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Demo 2: docker & wordpressCredits: Fabrizio Frosali, CEO di Impulso - presentato al primo meetup di Docker Milano
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Demo 2: cosa abbiamo visto
$ docker build -t NAME .
permette di creare una nuova immagine, utilizzando la ricetta fornita dal Dockerfile presente nella directory corrente;
al termine assegnare il nome NAME all’immagine
# Comment ***********
INSTRUCTION arguments
i Docker file sono composti da istruzioni che indicano a docker come comporre l’immagine che desideriamo comporre
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
FROM image:tag
indica l’immagine di partenza per la ricetta
Demo 2: cosa abbiamo visto
esegue il comando (dentro una shell /bin/sh) all’interno del container
RUN <command>
RUN ["executable", "param1", "param2"]
ADD <src>... <dest>
copia files, directory o scarica url remoti da <scr>dentro al filesystem del container alla posizione <dest>
lista completa dei comandi e documentazione suhttps://docs.docker.com/reference/builder/
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Ragazzo, siamo
al php user
group...
dove diavolo è
il PHP?!?!
Ci arriviamo, attraverso un caso reale ....
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
… il NOSTRO caso reale
Ubuntu Server 12.04.5
- PHP 5.4.37
- Zend Engine v2.4.0
- Apache/2.2.22
- MySql 5.5.41
- 65 siti / e-commerce
Wordpressv 4.0.1
Wordpressv 4.1.1
Wordpress
v 3.9.4Wordpressv 3.5.0
Joomlav 2.5
Joomlav 3.5
Joomlav 3.3
Prestashopv 1.6.0.6
Prestashopv 1.4.7.3
Prestashopv 1.5.6.2
Prestashopv 1.5.5.0
Prestashopv 1.5.3.1
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Ubuntu Server 12.04.5
- PHP 5.4.37
- Zend Engine v2.4.0
- Apache/2.2.22
- MySql 5.5.41
- 65 siti / e-commerce
- DOCKER !!
- 65 container (o anche più)
Il piano futuro
- la versione più adeguata di PHP- la versione più adeguata di Apache- la versione più adeguata di MySql- l’applicazione Joomla / Wordpress..- versionamento con possibilità di
rollback dopo gli aggiornamenti- maggiore sicurezza in caso di
attacco esterno
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Il caso reale ..... realmente
Quindi tu speri di poter installare
questa roba sul mio server di produzione...
Introduzione pratica a Docker … da chi lo ha appena conosciuto!
26.03.2015
Docker come Vagrant
Ubuntu Server 12.04.5
- PHP 5.4.37
- Zend Engine v2.4.0
- Apache/2.2.22
- MySql 5.5.41