0% ont trouvé ce document utile (0 vote)
28 vues29 pages

5 Docker

Le document présente une introduction à Docker et Docker Compose, expliquant les concepts de conteneurs, d'images, et de volumes, ainsi que les différences entre conteneurs et machines virtuelles. Il aborde également les commandes de base de Docker, la création de réseaux, et l'utilisation de Docker Compose pour gérer des applications multi-conteneurs. Enfin, des démonstrations pratiques sont incluses pour illustrer l'utilisation de Docker.

Transféré par

Abid Arij
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
28 vues29 pages

5 Docker

Le document présente une introduction à Docker et Docker Compose, expliquant les concepts de conteneurs, d'images, et de volumes, ainsi que les différences entre conteneurs et machines virtuelles. Il aborde également les commandes de base de Docker, la création de réseaux, et l'utilisation de Docker Compose pour gérer des applications multi-conteneurs. Enfin, des démonstrations pratiques sont incluses pour illustrer l'utilisation de Docker.

Transféré par

Abid Arij
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Introduction à Docker

et Docker Compose

Salah Gontara
2022-2023
1
Agenda
Section 1: Section 3:
Qu’est-ce que Docker
Ce qui n’est pas Docker Networking
Commandes Docker de base
Dockerfiles

Section 2: Section 4:

Anatomie d’une image Docker Docker compose / stacks


Docker volumes Démo

2
Section 1:
Qu’est-ce que Docker
Commandes Docker de base
Dockerfiles

3
Qu’est-ce qu’un conteneur ?
• Emballage standardisé pour les
logiciels et les dépendances
• Isole les applications les unes
des autres
• Partage le même noyau de
système d’exploitation
• Fonctionne pour toutes les
principales distributions Linux
• Conteneurs natifs de Windows
Server 2016 et versions ultérieures

4
Le rôle des images et des conteneurs

D o c ke r I m a g e D oc ker Container

E xe m p l e : U b u nt u ave c n œ u d . j s e t C ré é à l ’a i d e d ’u n e i m a g e . E xé c u te
c o d e d ’a p p l i c at i o n vo t re a p p l i c at i o n .

5
Les conteneurs Docker ne sont PAS des VMs
• Connexion facile à faire
• Architectures fondamentalement différentes
• Des avantages fondamentalement différents

Virtual Machine Container

6
Docker Containers Versus Virtual Machines
App 1 App 2

Bins/Libs Bins/Libs

App 1 App 2
Guest O S Guest O S

Bins/Libs Bins/Libs

Hypervisor Docker Engine

Host Operating System Host Operating System

Virtual Mac hines D o c ke r C ontainers

7
• Plateforme légère, ouverte et
sécurisée
Q u ’e s t - c e q u e D o c ke r ? • S i m p l i f ie l a c r é a t i o n , l ’ e xp é d i t i on e t
l ’ e xé c u t i o n d ’ a p p l i c at i on s
• Fonctionne en mode natif sur Linux
ou W indows Server
• S’exécute sur des machines de
développement W indows ou Mac
(avec une machine virtuelle)
• S’appuie sur des « im ages » et des «
conteneurs »

8
Utilisation de Docker : Créer, expédier, exécuter un Workflow
Développeurs Opérations IT

BUILD SHIP RUN


Development Environments Create & Store Images Deploy, Manage, Scale

9
Un peu de vocabulaire Docker
Docker Image
Base d’un conteneur Docker. Représente une application complète

Docker Container
Unité standard dans laquelle réside et s’exécute le service d’application

Docker Engine
Crée, expédie et exécute des conteneurs Docker déployables sur un hôte
physique ou virtuel localement, dans un centre de données ou un
fournisseur de services cloud
Registry Service (Docker Hub(Public) ou Docker Trusted
Registry(Private))
Service de stockage et de distribution cloud ou serveur pour vos images
10
Commandes Docker de base
$ docker image pull node:latest

$ docker image ls
$ docker container run –d –p 5000:5000 –-name node node:latest

$ docker container ps

$ docker container stop node(or <container id>)

$ docker container rm node (or <container id>)

$ docker image rmi (or <image id>)

$ docker build –t node:2.0 .

$ docker image push node:2.0

$ docker --help
11
Dockerfile – Linux Example
• Instructions sur la
création d’une
image Docker
• Ressemble
beaucoup aux
commandes
« natives »
• Important pour
optimiser votre
Dockerfile

12
14
Section 2:
Anatomie d’un conteneur Docker
Docker Volumes
Cas d’utilisation des volumes

13
Revenons à notre Dockerfile

14
Chaque commande Dockerfile crée une couche


EXPOSE

COPY

WORKDIR

RUN

FROM

Kernel

15
Docker Image Pull: Pulls Layers

16
Docker Volumes
• Les volumes montent un répertoire sur l’hôte dans le conteneur à un
emplacement spécifique
• Peut être utilisé pour partager (et conserver) des données
entre des conteneurs
• Le répertoire persiste après la suppression du conteneur
• Sauf si vous le supprimez explicitement
• Peut être créé dans un Dockerfile ou via CLI

17
Pourquoi utiliser les volumes
• Monte le code source local dans un conteneur en cours d’exécution

docker container run -v $(pwd):/usr/src/app/


myapp

• Améliore les performances


• À mesure que les structures de répertoires se compliquent, la traversée de
l’arborescence peut ralentir les performances du système

• Persistance des données

18
Section 3:
Networking

19
Qu’est-ce que Docker Bridge Networking
Docker host Docker host

Cntnr 1 Cntnr 2 Cntnr 3 Cntnr 4 Cntnr 5 Cntnr 6 Cntnr 7

bridgenet1 bridgenet2 bridgenet3

docker network create -d bridge --name bridgenet1

20
Docker Bridge Networking et Mapping de port

Docker host 1
Host port Container port
Cntnr1

[Link] :80
$ docker container run -p 8080:80 ...

Bridge

[Link] :8080

L2/L3 physical network

21
Manipulation (1/2)
1. Installez Docker et assurez-vous de l’installation avec les commandes suivantes :
sudo docker version
sudo docker-compose version
2. Commencez par un simple Hello World !
sudo docker run hello-world
3. Créez un réseau virtuel dédié pour les conteneurs à installer.
Utilisez la commande :
sudo docker network create -d bridge --subnet [Link]/24 test_network

22
Manipulation (2/2)
1. Listez les images importées avec la commande :
sudo docker images
2. Démarrez CentOS et Ubuntu avec la commande :
sudo docker run -it image_name bash
3. Confirmez les noms des systèmes en marche avec « os-release ».
4. Arrêtez les conteneurs et relancez-les avec le réseau virtuel dédié avec la
commande :
sudo docker run --network=[…] --ip=[…] -it image_name bash
5. Faites un ping entre les conteneurs pour confirmer l’appartenance au même réseau
virtuel.
23
Section 4:
Docker Compose

24
Docker Compose : Applications multi-conteneurs

• Crée et exécute un conteneur à la fois • Définit une application multi-conteneur dans le


• Connecte manuellement les conteneurs entre fichier [Link]
eux • Commande unique pour déployer l’application
• Doit être prudent avec les dépendances et
• Gère les dépendances de conteneur
l’ordre de démarrage
• Fonctionne avec Docker Swarm, networking,
Volumes, Universal Control Plane

25
49
Docker Compose : Applications multi-conteneurs

version: '2' # specify docker-compose version

# Define the services/containers to be run


services:
angular: # name of the first service
build: client # specify the directory of the Dockerfile
ports:
- "4200:4200" # specify port forewarding

express: #name of the second service


build: api # specify the directory of the Dockerfile
ports:
- "3977:3977" #specify ports forewarding

database: # name of the third service


image: mongo # specify image to build container from
ports:
- "27017:27017" # specify port forewarding
26
Docker Compose: mise à l’échelle

27
Demo
Django Python PostgreSQL

[Link]
28
29

Vous aimerez peut-être aussi