Présentation
Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur virtuel, qui pourra être exécuté sur n'importe quel serveur Linux
Objectifs
- Pas de dépendances
- Isolation
VM vs. Docker
Avantages
- Scalable
- Portable
- Meilleures performances
- Facilité de déploiement
Docker Registry
Dépot officiel
Dépots privés
Docker hub privé, AWS...
Exemples d'image
- Une Debian 8
- Un Serveur Apache
- Un Serveur postgresql avec postgis
- Un blog
- Un logiciel en ligne de commande
Comment ça marche
Images et containers
Un container est l'instance d'une image
Lancement d'un container
docker run -d --name some-ghost -e url=http://localhost:3001 -p 3001:2368 ghost
Voir les containeurs lancés :
docker ps
Options de 'docker run'
docker run -it debian
Permet de se connecter à la sortie/entrée stardard
Permet de binder un volume
docker run -v /home/stephane/dev/monblog:/var/www nginx
Permet de binder un port
docker run -p 8080:80 nginx
Permet de supprimer automatiquement le container à la fin
docker run --rm apache2
Permet de passer des variables d'environnement
docker run -e HTTPS=true nginx
Création d'une image docker
Dockerfile
FROM node:12.2.0
COPY package.json package.json
RUN npm install
COPY src src
COPY tsconfig.json tsconfig.json
COPY tslint.json tslint.json
COPY angular.json angular.json
RUN npm run sass
RUN ng build --prod client
RUN ng build --prod admin
COPY server.js server.js
CMD node server.js
Exemple pour une app angular
Création de l'image
Build :
docker build . -t wikipredict
Execution :
docker run -p 80:80 706247672606.dkr.ecr.eu-west-3.amazonaws.com/wikipredict:latest
Hébergement de l'image sur AWS registry :
docker push 706247672606.dkr.ecr.eu-west-3.amazonaws.com/wikipredict:latest
Assemblage et orchestration
Un container héberge une et une seule app
Docker compose
Pour composer son application en local
Lancer un docker-compose :
docker-compose up
Plus loin dans l'orchestration
En production, utiliser un orchestrateur plus poussé pour l'auto scaling / monitoring / gestion des erreurs ....
Exemples :
- AWS ECS
- Docker swarm
- Kubernetes
Docker
By doelia
Docker
- 563