Introduzione a Docker

Fondamentali sulla containerizzazione degli applicativi software

Sulla destra si vede come le macchine virtuali rappresentino un’intera astrazione di un server fisico, in cui ogni applicazione necessita del sistema operativo replicato, mentre sulla sinistra vediamo diverse applicazioni che si appoggiano su Docker.
attraverso il comando `docker build` viene generata l’immagine
Un’immagine può avere multipli container in esecuzione

Docker

Docker Inc. è un’azienda nata nel 2010. La tecnologia che ha sviluppato è diventata così comune che ad oggi il nome identifica il loro software di orchestrazione e tutti i servizi che offrono.

Un quarto dei clienti di Datadog aveva adottato Docker al 2018

Esempio

Nulla è meglio della pratica per imparare, poniamo ad esempio di avere un applicativo web basato sul framework python Flask.
Immaginiamo di essere all’interno della cartella della nostra repository git, cosi strutturata:

application
├── module1
│ ├── __init__.py
│ └── cool_functions.py
├── frontend
│ ├── homepage.html
│ └── images
│ └── logo.png
├── requirements.txt
├── .gitignore
└── app.py
# partiamo da un'immagine ufficiale linux con python 3.7 già installato
FROM python:3.7
# ci spostiamo all'interno del file system
WORKDIR /usr/src/app
# copiamo il file dei requirements locale nella cartella attuale del container
COPY requirements.txt .
# installiamo i requirements all'interno del sistema, non servono virtual environment
RUN pip install -r requirements.txt
# copiamo gli altri file della nostra app
COPY . .
# settiamo la variabile di ambiente per specificare il file dell'app flask
ENV FLASK_APP=app.py
# esponiamo la porta standard di flask in modo che sia raggiungibile dall'esterno
EXPOSE 5000
CMD ["python", "-m", "flask", "run", "--host=0.0.0.0"]
docker build -t flask-application .
docker run flask-application

Software Engineer and full stack developer 💻 based in Italy — /in/nicologasparini/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store