Introduzione a Docker e alla Dockerizzazione.
Filosofia e progettazione Docker
Comandi principali per gesitere immagini, container, volumi e reti
Dockerfile e docker-compose
Valerio Radice @ Nextre (Maggio 2017)
TAG: docker , Dockerfile , docker-compose , italian , nextre
Docker is the world's leading software containerization platform.
This is a comprehensive introduction to Docker, suitable for delivering in introductory meetups to an audience who does not know about docker.
In case you want to deliver this presentation somewhere, kindly drop me a mail at aditya.konarde@gmail.com
You can contact me at:
Connect with me onLinkedIN: https://www.linkedin.com/in/adityakonarde
Add me on Facebook: https://www.facebook.com/Aditya.Konarde
Tweet to me @aditya_konarde
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Edureka!
( ** DevOps Training: https://www.edureka.co/devops ** )
This Docker Explained PPT will explain to you the fundamentals of Docker with a hands-on. Below are the topics covered in the PPT:
Problems Before Docker
Virtualization vs Containerization
What is Docker?
How does Docker work?
Docker Components
Docker Architecture
Docker Compose & Docker Swarm
Hands-On
Docker is the world's leading software containerization platform.
This is a comprehensive introduction to Docker, suitable for delivering in introductory meetups to an audience who does not know about docker.
In case you want to deliver this presentation somewhere, kindly drop me a mail at aditya.konarde@gmail.com
You can contact me at:
Connect with me onLinkedIN: https://www.linkedin.com/in/adityakonarde
Add me on Facebook: https://www.facebook.com/Aditya.Konarde
Tweet to me @aditya_konarde
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Edureka!
( ** DevOps Training: https://www.edureka.co/devops ** )
This Docker Explained PPT will explain to you the fundamentals of Docker with a hands-on. Below are the topics covered in the PPT:
Problems Before Docker
Virtualization vs Containerization
What is Docker?
How does Docker work?
Docker Components
Docker Architecture
Docker Compose & Docker Swarm
Hands-On
An introduction to docker; the concepts; how to use it and why. The presentation is mainly based on the following presentation by docker, but with added info about Docker Compose and Docker Swarm.
https://www.slideshare.net/Docker/docker-101-nov-2016
#container #docker #Trifork #TriforkSelected #GotoConf
***** DevOps Masters Program : https://www.edureka.co/masters-program/devops-engineer-training *****
This DevOps Docker Commands tutorial ( Docker Tutorial Blog Series: https://goo.gl/z93Ed1 ) will introduce you to the most commonly used Docker commands. The Hands-On session is performed on an Ubuntu-64 bit machine in which Docker is installed.
To learn how Docker can be used to integrate multiple DevOps tools, watch the video titled 'DevOps Tools', by clicking this link: https://goo.gl/up9iwd
Learn, Collaborate & Dockerize. Docker is an open platform that helps you build, ship and run applications anytime and anywhere.
Join Docker Jaipur:
Docker Page: events.docker.com/jaipur
Telegram Group: t.me/dockerjaipur
Twitter: @JaipurDocker
Présentation portant sur le système de virtualisation Docker.
Langue : Français.
Auteur : Colin LEVERGER, me@colinleverger.fr, merci de citer vos sources ;)
Sources : Wikipedia / Docker site officiel : https://www.docker.com/
Docker 101 is a series of workshops that aims to help developers (or interested people) to get started with docker.
The workshop 101 is were the audience has the first contact with docker, from installation to manage multiple containers.
- Installing docker
- managing images (docker rmi, docker pull)
- basic commands (docker info, docker ps, docker images, docker run, docker commit, docker inspect, docker exec, docker diff, docker stop, docker start)
- Docker registry
- container life cycle (running, paused, stopped, restarted)
- Dockerfile
Docker is one of the fastest-growing open source projects ever, and the ecosystem that has grown around it is evolving at a similar pace. For these reasons, we want to introduce developers, system administrators, and other computer users of a mixed skillset to the Docker project and Linux container concepts.
Livin' with Docker - dallo sviluppo alla produzionegiacomos
Presentiamo un caso di studio di un progetto web nato e cresciuto con Docker al centro della scena. Vedremo le soluzioni scelte durante tutto il percorso, partendo da docker-compose in locale, per arrivare a CoreOS e systemd in produzione, passando per la fase di continuous integration/build e il deploy.
Talk DockerOps 13-02-2016, Ferrara
An introduction to docker; the concepts; how to use it and why. The presentation is mainly based on the following presentation by docker, but with added info about Docker Compose and Docker Swarm.
https://www.slideshare.net/Docker/docker-101-nov-2016
#container #docker #Trifork #TriforkSelected #GotoConf
***** DevOps Masters Program : https://www.edureka.co/masters-program/devops-engineer-training *****
This DevOps Docker Commands tutorial ( Docker Tutorial Blog Series: https://goo.gl/z93Ed1 ) will introduce you to the most commonly used Docker commands. The Hands-On session is performed on an Ubuntu-64 bit machine in which Docker is installed.
To learn how Docker can be used to integrate multiple DevOps tools, watch the video titled 'DevOps Tools', by clicking this link: https://goo.gl/up9iwd
Learn, Collaborate & Dockerize. Docker is an open platform that helps you build, ship and run applications anytime and anywhere.
Join Docker Jaipur:
Docker Page: events.docker.com/jaipur
Telegram Group: t.me/dockerjaipur
Twitter: @JaipurDocker
Présentation portant sur le système de virtualisation Docker.
Langue : Français.
Auteur : Colin LEVERGER, me@colinleverger.fr, merci de citer vos sources ;)
Sources : Wikipedia / Docker site officiel : https://www.docker.com/
Docker 101 is a series of workshops that aims to help developers (or interested people) to get started with docker.
The workshop 101 is were the audience has the first contact with docker, from installation to manage multiple containers.
- Installing docker
- managing images (docker rmi, docker pull)
- basic commands (docker info, docker ps, docker images, docker run, docker commit, docker inspect, docker exec, docker diff, docker stop, docker start)
- Docker registry
- container life cycle (running, paused, stopped, restarted)
- Dockerfile
Docker is one of the fastest-growing open source projects ever, and the ecosystem that has grown around it is evolving at a similar pace. For these reasons, we want to introduce developers, system administrators, and other computer users of a mixed skillset to the Docker project and Linux container concepts.
Livin' with Docker - dallo sviluppo alla produzionegiacomos
Presentiamo un caso di studio di un progetto web nato e cresciuto con Docker al centro della scena. Vedremo le soluzioni scelte durante tutto il percorso, partendo da docker-compose in locale, per arrivare a CoreOS e systemd in produzione, passando per la fase di continuous integration/build e il deploy.
Talk DockerOps 13-02-2016, Ferrara
Nell'ultimo quinquennio un nuovo attore si è affacciato sulla scena dell'Information Technology, il suo nome è Docker. Con una crescita esponenziale ed una diffusione ancor più rapida, Docker ha trasformato il modo di percepire e utilizzare l'ICT. Una trasformazione così radicale ed estesa da non poter ignorare la domanda: Cos'è Docker?
Lo scopo di questa giornata è di fornire una risposta a questo interrogativo, mostrando ai partecipanti nuovi scenari, per le realtà dell'Università e della Ricerca, grazie alle possibilità che Docker offre.
Latini Giuliano li guiderà lungo un percorso articolato secondo questi temi:
- Infrastruttura, Isolamento, Idempotenza e DevOps ovvero i vantaggi e i vincoli della definizione formale di un'infrastruttura, concetti teorici e glossario;
- Docker, un facilitatore per utilizzare i Container e le tecnologie ad essi collegate;
- Container vs Hypervisor, le due facce della stessa medaglia: pro, contro ed esempi d'uso;
- Dalla Vm alla Infrastruttura di Servizi, un modo per rimescolare le carte a nostro vantaggio;
- Sviluppo software: esempio d'uso di Docker nello sviluppo di una procedura PHP;
- Gestione di Sistemi: esempio di un'infrastruttura Wordpress organizzata a servizi, definizione formale implementata con Docker;
- Docker Swarm la clusterizzazione ed alta affidabilità, come il sistema risponde e si adatta alle sollecitazioni esterne in un sistema di calcolo;
L'obiettivo finale è fornire ai partecipanti un gruppo di concetti ed esempi grazie ai quali poter approfondire autonomamente Docker, personalizzandone l'uso per le proprie necessità; in alternativa ad una trattazione dettagliata ed esaustiva di tutti i temi illustrati, impossibile nel tempo a disposizione.
A conclusione del corso verrano messi a disposizione, come materiale didattico da approfondire: slide, esempi e bibliografia di riferimento.
Apache Maven - Gestione di progetti Java e build automationTiziano Serritella
Apache Maven è un tool per la gestione di progetti e build automation, utilizzato principalmente per progetti Java, il cui obiettivo è: semplificare, uniformare e automatizzare il processo di build di sistemi complessi.
In questa presentazione / guida verranno illustrati i problemi e le criticità dei tool di build automation tradizionali: make e Apache Ant, vedremo poi come installare e configurare Maven, le caratteristiche, gli obiettivi e i punti di forza del tool, le fasi del ciclo di vita, i plugin e i goal, le dipendenze, gli scope e la risoluzione di eventuali conflitti, i repository, i plugin "esterni" e i progetti multi-modulo.
La presentazione è ricca di esempi pratici.
MuleSoft Meetup Roma - Runtime Fabric Series (From Zero to Hero) - Sessione 1Alfonso Martino
Questo slide rappresentano un approfondimento su Runtime Fabric - il modello di deployment containerizzato di MuleSoft.
Al loro interno troverete:
- Panoramica su Runtime Fabric
- Setup e configurazione di un cluster su cloud AWS
- Deployment di un'API di test
Vagrant e Docker a confronto;scegliere ed iniziareDaniele Mondello
Pitch presentato al Linux Day 2015 a Palermo su Vagrant e docker per confrontarli, scegliere ed iniziare. Partendo dal concetto di virtualizzazione, proseguendo con l'analisi delle due soluzioni fino a dare cenni sull'installazione ed un primo utilizzo.
Parleremo di come configurare e utilizzare Docker in un progetto Laravel per uno sviluppatore che si inserisce in un nuovo Team per la prima volta. Prendedermo come esempio alcuni progetti già pre-costituiti come Laravel Homestead e Laradock fino ad arrivare ad a costruire un ambiente docker più strutturato con Laravel, Redis, Memcached, Laravel Echo Server per avere un ambiente facilmente deployable sul cloud.
Usare SQL Server for Linux e Docker per semplificare i processi di testing - ...Giulio Vian
DevOps@Work 2020
Roma, 16 January 2020
https://www.domusdotnet.org/events/
SQL Server per Linux apre un nuovo mondo di possibilità per testare il codice SQL in modi che prima non erano pensabili.
Esploriamo alcune opzioni come:
- Ripristinare il database ad uno stato noto tra un test e l'altro
- Provare più varianti di configurazione
- Eseguire test di integrazione nella pipeline CI
- Test delle migrazioni dello schema
- Attach di grossi database eseguendo i container nel cloud
Slide sesta lezione al linguaggio Java 8 in preparazione alla certificazione OCA 1Z0-808.
Argomenti:
Librerie indispensabili e famose (StringTokenizer, StringBuilder, DateTime API)
Collections Framework & Stream API, Gestione input e Output
Lezione del 11-01-2018 tenuta da Valerio Radice presso Nextre Engeneering
https://www.nextre.it/corso/corso-java-oca/
Slide quinta lezione al linguaggio Java 8 in preparazione alla certificazione OCA 1Z0-808.
Argomenti:
Invocazione virtuale dei metodi
Eccezioni, gestione e creazione
Catturare e rilanciare eccezioni
NullPointer
Operazioni lambda, Predicate e principali operazioni
Stream
Lezione del 05-12-2017 tenuta da Valerio Radice presso Nextre Engeneering
https://www.nextre.it/corso/corso-java-oca/
Slide quarta lezione al linguaggio Java 8 in preparazione alla certificazione OCA 1Z0-808.
Argomenti:
Design Pattern: Singleton
Classe Astratta
Interfaccia e interfaccia funzionale
Ereditarietà e costruttori
Super e this
Incapsulamento
Polimorfismo
Varargs
Overload e Override
Invocazione virtuale dei metodi
Lezione del 28-11-2017 tenuta da Valerio Radice presso Nextre Engeneering
https://www.nextre.it/corso/corso-java-oca/
Slide introduttive al linguaggio Java 8 in preparazione alla certificazione OCA 1Z0-808.
Lezione del 12-10-2017 tenuta da Valerio Radice presso Nextre Engeneering
https://www.nextre.it/corso/corso-java-oca/
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
Introduzione al framework Java Spring e Maven per realizzare API REST.
Breve introduzione all'uso di Maven per configurare un progetto SpringBoot e realizzare un server REST.
Disponibile il codice dimostrativo su github (link nelle slide, attenzione alle branch).
Valerio Radice (valix85)
Luglio 2017
Introduzioni all'uso dei preprocessori Sass e Less per la stesura di un foglio di stile CSS intelligente
Autore: Valerio Radice - valix85
Data: Giugno 2017
Breve introduzione a GIT:
. Iniziare un nuovo progetto o clonarne uno esistente
. primi commit e comandi base
. esempi di utilizzo
Autore: Valerio Radice
tag line:
Tutorial GIT ITA italiano
Analisi di tecnologie per l’interazione dei visitatori all'interno di museiValerio Radice
Presentazione di Ubiquitous Computing - Sistemi context aware
"Analisi di tecnologie per l’interazione dei visitatori all'interno di musei"
Lorenzo Airoldi - Matteo Baiguini - Rossella Nota - Valerio Radice
11/2010 - Università degli studi di Milano Bicocca
6. 6
Questa domanda ha portati gli sviluppatori di
Google ad estendere il kernel di Linux con le
librerire cgroups, successivamente integrate
ufficialmente nel kernel linux.
Con cgroups, si ricrea un contesto di esecuzione
isolato, con un alto livello di astrazione, tanto da
imporsi come una sorta di sistema operativo
semplificato e virtualizzato che soggiace alla
base di tutte le applicazioni.
7. 7
DOCKER: cos'è
piattaforma open-source
per la creazione di
containers
portabili, leggeri, autosufficienti
per eseguire applicazioni
“Configure once... run everywhere!”
Documentazione
8. 8
La conteinerizzazione
può essere considerata figlia della
virtualizzazione
da cui si evolve in una nuova
generazione introducendo migliorie
9. 9
ü Replica ambiente di produzione
ü Modularità -> Scalabilità
ü Rapidità
ü Efficiente separazione dei servizi
ü Portabilità
ü Alta personalizzazione
DOCKER
10. 10
ü Containers
ü Immagini
ü Kernel condiviso
ü No hypervisor (niente overhead)
ü Performance migliori
ü Utilizzo solo delle risorse necessarie
DOCKER
17. 17
Ma i container possono dialogare
con i servizi offerti dalla
macchina che li ospita?
SI certamente, in ogni momento!
Vi è sempre condivisione di risorse
DOMANDA
18. 18
un deployment semplificato: impacchettando un’applicazione in un singolo
componente distribuibile e configurabile con una sola linea di comando, la
tecnologia a container permette di semplificare il deployment di qualsiasi
applicazione, senza doversi preoccupare della configurazione dell’ambiente
di runtime;
una disponibilità rapida: virtualizzando ed astraendo solo il sistema
operativo e le componenti necessarie all’esecuzione dell’applicazione, invece
che l’intera macchina, l’intero package si avvia in un ventesimo di secondo,
rispetto ai tempi di avvio di una VM;
BENEFICI
19. 19
un controllo più granulare: i container consentono agli operatori e agli
sviluppatori di suddividere ulteriormente le risorse computazionali in
microservizi, garantendo così un controllo superiore sull’eseguibilità delle
applicazioni e un miglioramento delle prestazioni dell’intero sistema.
l’amministrazione dei cicli di rilascio delle applicazioni è semplificato
basta pubblicare la nuova immagine docker e ricaricare il container per avere
tutto aggiornato (* salvare i dati volatili esternamente);
anche le attività di testing traggono un beneficio economico infatti il
testing avviene solo su container perchè la stessa situazione verrà ricreata sul
server.
BENEFICI
20. 20
CONTAINER
ü Pacchetto standardizzato contenente
software e dipendenze
ü Isola l'applicazione dal resto del
sistema
ü Condivide lo stesso kernel del
sistema operativo
ü Funziona sulla maggiorparte delle
distribuzioni linux
ü Nativo da Windows Server 2016
22. 22
WINDOWS
Installare su Windows 10 (Pro or Enterprise)
La miglior esperienza su Windows, sfortunatamente disponibile solo nelle
versioni Pro ed Enterprise.
Ti basterà installare il file di installazione della versione Docker
Community Edition (CE) per Windows disponibile sul Docker Store.
Installare su Windows 7, 8, o 10 Home Edition
Sfortunatamente nelle precedenti versioni di Windows non è disponibile,
nelle sue funzionalità complete, Hyper-V, così è necessario installare
Docker Toolbox, un approccio leggermente differente in quanto prevede
l'installazione di una macchina virtuale (VirtualBox VM) sul quale girerà
docker.
https://www.docker.com/docker-windows
Documentazione
23. 23
MAC
Installare su Mac OS X >= El Capitan
La miglior procedura per utilizzare Docker su un sistema MacOS è
l'installazione per Mac disponibile sul Docker Store.
Installare su Mac OS X <= Yosemite
Sfortunatamente nelle precedenti versioni di Mac il MacOS Hypervisor
framework non è pienamento integrato con Docker e risultanto
necessario installare Docker Toolbox, disponibile sul sito ufficiale di
Docker.
https://www.docker.com/docker-mac
Documentazione
24. 24
LINUX / UBUNTU
Installare su Linux (Kernel version >= 3.10)
La miglior procedura per utilizzare Docker su un sistema Linux è
installarlo da terminale con il comando:
curl -sSL https://get.docker.com/ | sh
Installare su Ubuntu (Kernel version >= 3.10)
Per la distribuzione Ubuntu è dedicata una pagina apposita dal quale è
possibile scaricare un pacchetto per l'installazione.
https://www.docker.com/docker-ubuntu
Documentazione
26. 26
VOCABOLARIO DOCKER
Docker Image
Rappresenta la base di un Docker container, contiene l'intera applicazione.
Docker Container
L'unità standard nella quale l'applicazione vive e viene eseguita.
Docker Engine
Il motore di Docker che organizza, avvia, ferma i container pemettendo la
comunicazione e la condivisione delle risorse tra macchine virtuali e host.
Registry Service
Il servizio, cloud o locale, dove si registrano e si distribuiscono le immagini
di Docker (Docker HUB o Docker Trusted Registry).
27. 27
CODE
I comandi di docker nel nuovo formato sono strutturati in:
docker <comandoPrincipale> <comandoSecondario> [parametri]
la lista dei comandi si può ottenere semplicimente col comando:
docker
la versione di docker installata sul sistema è ottenibile da:
docker version
oppure una versione semplificata:
docker -v
docker --version
Per avere informazioni sull'installazione di docker sulla macchina
docker info
28. 28
Le immagini sono costruite sui cambiamenti del file system,
generalmente da un'immagine di partenza, ed arricchite da
metadati.
Ogni modifica è contenuta in un “layer”, identificata da un
ID e salvate sull'host. la costruzione di un'immagine risulta
così un'operazione incrementale e quando caricherò sul
mio docker hub non dovrò ricaricare tutta l'immagine ma
solo le modifiche (layer).
IMAGE
29. 29
IMAGE: CODE
Per vedere le immagini in cache locale:
docker image ls
Per scaricare un'immagine dal docker hub:
docker pull <nomeImmagine>
Per cancellare un'immaigne:
docker image rm <nomeImmagine>
Per rimuovere le immagini non usate:
docker image prune
30. 30
IMAGE: CODE
Per assegnare un tag all'immagine:
docker image tag <nomeImmagine>[:TAG] <nomeImmagine>[:TAG]
Per vedere la storia di un'immagine:
docker image history <nomeImmagine>
Per vedere il contenuto/configurazione di un'immagine:
docker image inspect <nomeImmagine>
Per generare un container da un Dockerfile:
docker image build [options] <nomeImmagine>
32. 32
Il container è l'istanza di un'immagine, il suo stato
può essere salvato, tuttavia per il corretto
disaccoppiamento tra ambiente e persistenza dei
dati è opportuno creare dei volumi dedicati.
Inizialmente il container è la copia di un'immagine,
fino alla prima modifica, successivamente l'immagine
verrà copiata e resa disponibile all'istanza di quel
container, lasciando inalterata l'immagine.
Proprio per la natura effimera del container è
opportuno non salvare nulla all'interno di esso, si
adotta il principio di Separation of concerns.
CONTAINER
33. 33
CONTAINER: CODE
Comando principale per gestire i container:
docker container <comandoPrincipale>
Per vedere i container attivi:
docker container ls
e tutti quelli sulla macchina:
docker container ls -a
Tutti i comandi:
docker container --help
34. 34
CONTAINER: CODE
Creare un container da un'immagine:
docker container run [-v,-d,-p, options] <nomeImmagine>
Parametri principali:
-p <portaHost>:<portaContainer> = espone una porta
-d = detached mode (resta attivo in background)
-v <nomeVolume>:<percorsoNelContainer> = Assegna un volume definito
-rm = non lascia traccia del container al termine
Per trasformare un container in una nuova immagine:
docker container commit [options] <nomeContainer | ID> <nomeImmagine>
Per esporre più volte lo stesso servizio, da docker diverse, basta esporle solo sulla
porta esterna
35. 35
CONTAINER: CODE
Per avviare un'immagine ed entrare nel suo terminale:
docker run -it <nomeImmagine> bash
Per entrare nella shell di un container già avviato:
docker container exec -it <nomeContainer> <bash|sh>
-i = interactive mode
-t = allocate pseudo-TTY terminal
Per vedere le porte condivise tra host e container:
docker container port <nomeContainer>
Per generare un container da un template (Dockerfile) usare
docker image build -t <NomeImmagine> .
-t = specifica il nome dell'immagine, il punto indica di caricare
dal path corrente il Dockerfile (scritto con la D maiuscola!)
es: docker build -t wget
36. 36
I container sono solitamente immutabili ed effimeri, ma come fare a
mantenere le informazioni nel tempo?
Esempio
Come faccio a persistere i dati di un database che lavora in un container?
Persistent data
2 modi per farlo:
- Volumes
- Bind Mounts ( link container path to host path )
https://docs.docker.com/engine/tutorials/dockervolumes
DOMANDA
38. 38
PERSISTENT DATA: Volumes
E' un luogo speciale al di fuori del file system del container in uso
Esempio, salvare il db di un container mysql
docker pull mysql
docker image inspect mysql
#genera un volume
docker container run -d --name mysqltest -e
MYSQL_ALLOW_EMPTY_PASSWORD=True mysql
- docker container inspect mysqltest
#scopro che volumi sono presenti sul mio sistema
docker volume ls
#controllo cosa contiene il volume di mysqltest
docker volume inspect <id_volume | volume_name>
Nei sistemi linux i file sono archiviati direttamente su disco e non si perdono
quando si cancella il container. Nei sistemi Win e Mac questi sono archiviati
dentro la macchina virtuale di Docker.
39. 39
VOLUME
Creare un volume:
docker volume create <volumeName>
Elencare i volumi sulla macchina:
docker volume ls
Eliminare i volumi non usati:
docker volume prune
Eliminare un volume:
docker volume rm
Ottenere dettagli sul volume:
docker volume inspect <volumeName | ID>
40. 40
Named Volumes è un sistema per ricordarsi facilmente i volumi
assegnandogli un nome.
Per creare un volume prima di creare un container fare:
docker volume create -d <nomeVolume>
docker container run -v <nomeVolume>:<percorsoNelContainer>
<nomeImmagine>
esempio:
docker container run -d --name mysqltest -e
MYSQL_ALLOW_EMPTY_PASSWORD=True -v mysql-db:/var/lib/mysql mysql
VOLUME
43. 43
PERSISTENT DATA: bind
E' un metodo per linkare una cartella sulla macchina host in un path del
container.
Può essere effettuato solo durante la generazione del container e non nel
Dockerfile.
Tutti i file presenti nel container verranno sovrascritti dai file condivisi con la
macchina host.
Esempio
docker run -p 80:4000 -v $(pwd):/site bretfisher/jekyll-serve
Windows
docker run -p 80:4000 -v //c/example/bind:/site bretfisher/jekyll-
serve
PWD is a environment variable in bash and other shells, which is updated by the
shell on cd. So when you do echo $PWD, shell replaces $PWD as whatever its
currently storing. $XYZ means a variable for the shell, and PWD is a varibale which it
itself does create, while there is no such $pwd present.
46. 46
NET: CODE
Con docker è possibile dividere ulteriormente i container con l'utilizzo di reti
virtuali dedicate, ciò è reso possibile da un substrato che simula una rete di
default tra la macchina host ed i container (Documentazione).
La rete di default per i container, se non diversamente specificato, sarà “bridge”
(docker0).
Per vedere le reti presenti sulla macchina:
docker network ls
Per creare una rete in fase di run usare l'attributo network:
docker run --network=<nomeRete> [parametri] <nomeImmagine>
Per vedere i comandi possibili per network vedere la guida:
docker network help
I container possono collegarsi e scollegarsi dalla rete in qualsiasi momento
47. 47
NET: CODE
Per creare una rete in fase di run usare l'attributo network:
docker network create [parametri] <nomeRete>
Per ispezionare una rete usare:
docker network inspect <nomeRete>
48. 48
NET: BRIDGE & PORT MAPPING
Per creare una rete usare il comando network create:
docker network create [parametri] <nomeRete>
Per ispezionare una rete usare:
docker network inspect <nomeRete>
50. 50
Dockerfile
Il Dockerfile è un file ben preciso che ci permette di creare un'immagine,
eseguendo una serie di comandi ben precisi, specificando eventualmente delle
opzioni, che risulterebbero scomode
da scrivere su una sola riga in console.
ü Istruzioni su come creare un'immagine
ü Ottimizare operazioni sulla
configurazione dell'immagine
ü Utilizzo di comandi nativi
Documentazione & best practice
> docker image build -t demo1 .
> docker run -d -p 3000:3000 demo1
51. 51
DOCKER-COMPOSE
Il docker-compose.yml è un file ben preciso, scritto in
yaml, che ci permette di creare un ambiente operativo
a partire da uno o più container.
Permette il settaggio di:
ü variabili
ü variabili d'ambiente
ü porte
ü referenze ad altri container
ü volumi
ü reti
Ci sono diverse versioni, consigliata minimo la v2
Documentazione & versioni
56. 56
DOCKER REGISTRY
Il Docker registry è un repository, pubblico o privato, per il versionamento delle
immagini.
L'archiviazione è affidata ad un driver di connessione remota con l'host che
archivierà i contenuti. I registry non sono solo quelli di docker hub ma anche S3,
Amazon, Azure, OpenStack e molti altri.
ü Soluzione rapida per fare il deploy su un proprio cluster.
ü Miglior soluzione per la distribuzione di un immagine in un contesto isolato
Documentazione
“A Docker registry stores Docker images. Docker Hub and Docker
Cloud are public registries that anyone can use, and Docker is
configured to look for images on Docker Hub by default. You can
even run your own private registry. If you use Docker Datacenter
(DDC), it includes Docker Trusted Registry (DTR).”
57. 57
DOCKER HUB
Il Docker hub è il luogo (repository) pubblico dove vengono caricate le immagini
che genereranno i nostri container.
Si possono trovare le immagini dei più diffusi software per lo sviluppo web e
database.
Sono presenti immagini di web server (apache, nginx, ecc... ) con preconfigurato
il supporto a diversi linguaggi di programmazione (php, ruby, python ecc... ).
Oltre alla immagini ufficiali sono presenti numerose immagine degli utenti, che,
come per github, possono caricare liberamente le loro creazioni e condividerle
con la community.
Ogni utente iscritto ottiene un proprio ID detto anche Docker ID.
58. 58
DOCKER HUB
Ogni utente può caricare le proprie immagini sul docker hub.
Le sue immagini vengono identificate con:
<dockerID>/<nomeImmagine>:<tagVersion>
La CLI mette a disposizione dei comandi per gestire direttamente il docker hub
da console, tra cui: docker search , docker pull , docker login e docker
push.
Esempio di account:
https://hub.docker.com/r/_/wordpress/
Docker HUB & documentazione
60. 60
Dubbi o domande?
Il mio contatto diretto: valerio.radice@nextre.it
GRAZIE per l'attenzione
61. 61
BIBLIOGRAFIA & CREDITS
Special thanks to all the people who made and released these awesome
resources for free:
▸ Docker - Official Docs
▸ Docker (Windows)
▸ Docker 101
▸ Docker & Microservices
▸ Registry
▸ www.play-with-docker.com
▸ courses/try-docker
▸ Docker@youtube