0% ont trouvé ce document utile (0 vote)
67 vues62 pages

Docker

Transféré par

ngom.masseck94
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)
67 vues62 pages

Docker

Transféré par

ngom.masseck94
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

Docker

YASSINE AIT SI M’BAREK

1
CONTE NT
01 In tro du cti on

02 Co nf igur ati on de Doc ker

03 Doc ker C omm an ds & Co nce pt s

04 Doc ker Logs

05 Doc ker Vol um es

06 B uil d ing i ma ge s

07 Mul ti Stage Dock erf il e

08 Do ck er Com p ose

09 Co nc lu tion

2
1- Introduction

3
1- Isolation de Service
L'isolation de service est un concept clé dans l'architecture logicielle moderne, en particulier
dans les architectures de microservices, la conteneurisation avec des outils comme Docker, ou
même dans la gestion des réseaux. L'idée principale est de rendre chaque service autonome et
indépendant des autres, permettant ainsi une gestion, une scalabilité et une maintenance plus
efficaces.

Pour héberger notre application, nous avons besoin d'une infrastructure.

Nous utilisons des VM ou le cloud computing pour configurer l'infrastructure.

4
What is Docker?
2- Sans Isolation de Service avec SE

Host

pas d’isolation

5
What is Docker?
3- Isolation de Service avec SE

Server 1 Server 2 Server 3

Isolation Network 6
What is Docker?
3- Isolation de Service avec SE
Les VM ou instances seront surprovisionnées.

La haute disponibilité est obtenue grâce à plusieurs instances/machines virtuelles.

Nous isolons notre service dans le système d'exploitation de VM.

Cela entraîne des coûts d'investissement (CapEx) et d'exploitation (OpEx) élevés.

7
What is Docker?
4- Les machines virtuelles sont coûteuses.
Chaque machine virtuelle dispose de son propre système d'exploitation.

Le système d'exploitation nécessite un entretien et une licence.

Le système d'exploitation prend du temps à démarrer.

Les machines virtuelles nécessitent des ressources pour leur SE.

Tout cela pour isoler les services.

8
What is Docker?
5- Isolation sans SE.
Imagine plusieurs services fonctionnant sur le même système d'exploitation
mais isolés.

Cela signifie que l'on cherche à isoler les services sans avoir besoin de multiples systèmes
d'exploitation (SE) comme dans le cas des machines virtuelles. Une telle approche pourrait être
réalisée via des conteneurs (par exemple, Docker), où chaque conteneur partage le même noyau de
SE mais reste isolé, ce qui réduit les ressources nécessaires par rapport à des VM complètes.

9
What is Docker?
6-Conta iner

Un conteneur est une unité standardisée de logiciel qui


regroupe le code et toutes ses dépendances, permettant
à l'application de s'exécuter rapidement et de manière
fiable d'un environnement informatique à un autre.
Container

Process(Isolated)
Chaque conteneur partage le même noyau de SE et ne nécessitent
running in a
donc pas un système d'exploitation par application..
directory(IP)

https://www.docker.com/resources/what-container/#:~:text=Containers%20are%20an%20abstraction%20at,isolated%20processes%20in%20user%20space
10
6-Conta iner

172.17.0.2
172.17.0.3 172.17.0.4
Container Container Container

Host
Network
172.17.0.2
seeyassine@lenovo:~$ docker exec mynginx1 ls / 11
6-Conta iner

Container

Process(Isolated)
running in a
directory(IP)

https://www.docker.com/resources/what-container/#:~:text=Containers%20are%20an%20abstraction%20at,isolated%20processes%20in%20user%20space
12
7- Comparer les conteneurs et les VM.

13
7- Comparer les conteneurs et les VMs.
1 2 3
Les conteneurs offrent de Les conteneurs sont une virtualisation du système Les machines virtuelles
l'isolation, pas de d'exploitation. sont une virtualisation
virtualisation. matérielle.

4 5 6
Les machines virtuelles ont Les conteneurs ont pas besoin d'un système Les conteneurs utilisent le
besoin d'un système d'exploitation. système d'exploitation
d'exploitation. hôte pour les ressources
de calcul.

Conteneurs est un prosessus

14
8-Docker .
1- Definition :

Docker est une plateforme ouverte pour développer,


expédier et exécuter des applications. Docker vous
permet de séparer vos applications de votre
infrastructure afin de livrer des logiciels rapidement.
gère votre conteneur

2- History :

• Anciennement connu sous le nom de DotCloud Inc. • A développé des outils pour gérer les conteneurs.
• Business Failed
• c'était comme un business PaaS. • A rendu leurs outils open source, connus sous le nom
• Utilisez LXC (Linux Containers). de Docker.
• A économisé des dépenses d'investissement (CapEX) en • A obtenu un financement.
utilisant des conteneurs au lieu de machines virtuelles. • Changed name to Docker Inc
15
8-Docker .
3- qu'est-ce que Docker ? :

Docker Inc : nom de l'entreprise.

Docker Project : Open Source


gère votre conteneur

Docker Engine : le meilleur produit pour gérer les conteneurs.


L'environnement d'exécution des conteneurs peut vous aider à gérer vos
conteneurs de manière beaucoup plus facile, avec beaucoup
d'automatisation qui sera effectuée.
16
9-Docker Engine .

17
9-Docker Engine .

https://hub.docker.com/

L’architecture de Docker

18
10-Docker Containers .
Les conteneurs Docker qui s'exécutent sur Docker Engine :

• Standard : Docker a créé la norme de l'industrie pour les conteneurs, ce qui les rend
portables partout.

• Lightweight: Les conteneurs partagent le noyau du système d'exploitation de la machine


et ne nécessitent donc pas un système d'exploitation par application, ce qui améliore
l'efficacité des serveurs et réduit les coûts liés aux serveurs et aux licences.

• Secure: Les applications sont plus sûres dans des conteneurs, et Docker offre les capacités
d'isolation par défaut les plus solides de l'industrie."

https://www.docker.com/resources/what-container/#:~:text=Containers%20are%20an%20abstraction%20at,isolated%20processes%20in%20user%20space
19
2- Configuration de Docker

20
1-Installation de Docker .
Linux or Windows

Les conteneurs Linux s'exécutent sur le système d'exploitation Linux.


Install Docker Engine

Les conteneurs Windows s'exécutent sur le système d'exploitation Windows.

21
1-Installer Docker Engine sur Ubuntu.
#Run the following command to uninstall all conflicting packages:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

############
#Set up Docker's apt repository.

## Add Docker's official GPG key: docvv.sh


sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:


echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
##############

#Install the Docker packages.


sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

#Verify that the Docker Engine installation is successful by running the hello-world image.
sudo docker run hello-world

https://docs.docker.com/engine/install/
22
Configuration de Docker
1- docker status

https://docs.docker.com/engine/install/ 23
Configuration de Docker
2- Add user seeyassine to docker group

Par défaut, seul root peut se connecter au CLI du démon Docker.

https://docs.docker.com/engine/install/linux-postinstall/ 24
3- Docker Commands &
Concepts

25
Docker Commands & Concepts
1- registre Docker

Un registre Docker(Docker Hub ) est un service où les images Docker sont stockées, gérées et
distribuées. Il sert de hub centralisé pour les applications conteneurisées, permettant aux
utilisateurs de pousser (Push) et tirer (télécharger-pull) des images Docker. Les registres peuvent
être publics ou privés et fournissent des services essentiels pour travailler avec des applications
conteneurisées dans un environnement évolutif et distribué.

Types de registres Docker courants :


•Docker Hub : Le registre public officiel de Docker. Il permet de stocker et partager des
images Docker avec la communauté ou en privé.

•Amazon Elastic Container Registry (ECR) : Un registre Docker privé intégré aux
services AWS pour stocker et gérer des
•GCR(Google Container Registry)
26
Docker Commands & Concepts
2- Docker Images

Un conteneur arrêté est comme une image de machine virtuelle.


Constitué de plusieurs couches.
Une application sera regroupée dans une image.
Les conteneurs s'exécutent à partir des images
Les images sont appelées des dépôts dans les registres.
Les images deviennent des conteneurs lorsqu'elles s'exécutent sur Docker Engine.
27
Docker Commands & Concepts
3- Docker Command Image

Build an images from a Dockerfile


Exemple

List all local images:

or

Pull an image from Docker Hub:

Exemple

28
Docker Commands & Concepts
3- Docker Command Image

Remove a local image:


Exemple

Tag an image
Exemple

Inspect details of an image

Exemple

29
Docker Commands & Concepts
3- Docker Command Container

Run a container from an image:

Exemple

Run a named container from an image:


Exemple

List all running containers List all containers (including stopped ones):

Stop a running container


Exemple 30
Docker
DockerCommands & Concepts
Commands & Concepts
3- Docker Command Container
Start a stopped container Exemple

Run container in interactive mode

Run container in interactive shell mode

Remove a stopped container

31
Docker Commands & Concepts
4- Docker Command Container

Inspect details of a container

View container logs

Run a container with port mapping

32
Docker Commands & Concepts
1- Commande Docker
• docker ps ➔ Affiche les conteneurs en cours d'exécution.
•docker ps -a ➔ Affiche tous les conteneurs, y compris ceux qui sont arrêtés.
•docker start /stop/restart/rm <container_id> ➔ Démarrer /Arrêter…un conteneur
•docker exec ➔ executes commands on containers
•docker run <options> <image> ➔ Exécuter un nouveau conteneur
•docker images ➔ Lister les images
•docker pull <image> ➔ Tirer une image depuis un registre
•docker build -t <image_name> <path_to_dockerfile> ➔ Construire une image à partir
d'un Dockerfile
•docker rmi <image_id> ➔ Supprimer une image
•docker volume create <volume_name> ➔ Créer un volume
•docker volume ls ➔ Lister les volumes
•docker volume rm <volume_name> ➔ Supprimer un volume
•docker logs <container_id> ➔ Afficher les logs d'un conteneur
•docker inspect → Afficher les metadada d'un conteneur 33
Commande Docker

34
Docker Commands & Concepts
4- Application Example https://hub.docker.com/_/nginx

seeyassine@lenovo:~$ docker run --name mynginx1 -p 9090:80 -d nginx

35
Docker Commands & Concepts
5-access to docker container
seeyassine@lenovo:~$ ps -ef

seeyassine@lenovo:~$ docker exec mynginx1 ls /

36
Docker Commands & Concepts
5-access to docker container

seeyassine@lenovo:~$ docker exec -it mynginx /bin/bash

37
Docker Commands & Concepts
5-access to docker container

38
4- Docker Logs

39
Docker Logs

40
Docker Logs

41
Docker Logs

42
5-Docker Volumes

43
Docker Volumes
Create a named volume

List all volumes Remove a volume

Run a container with a volume (mount):

44
Docker Volumes
Method 1:
seeyassine@lenovo:~$ docker run --name mysqlvv -d -P -e MYSQL_ROOT_PASSWORD=yassine -v
/home/seeyassine/mydata:/var/lib/mysql mysql

45
Docker Volumes
Method 2(The best way):

46
6-Building images

47
1- Dockerfile Instructions
1- Qu'est-ce qu'un Dockerfile ?
Un Dockerfile est un script qui contient des instructions pour construire
une image Docker. Il définit l'image de base, configure les variables
d'environnement, installe des logiciels et configure le conteneur pour une
application ou un service spécifique.
Dockerfile Syntax
Spécifie l'image de base pour l'image Docker.

WORKDIR:

48
1- Docker files
COPY: Copie des fichiers ou des répertoires du contexte de construction vers le
conteneur

RUN Exécute des commandes dans le shell.

ENV: Définit des variables d'environnement dans l'image

EXPOSE:
49
1- Docker files
CMD: Fournit des commandes ou des paramètres par défaut pour
l'exécution d'un conteneur.

ENTRYPOINT

VOLUME: Crée un point de montage pour des volumes externes ou d'autres conteneurs.

50
1- Docker files
ADD:
Copie des fichiers ou des répertoires
et peut extraire des archives tar dans
le processus.

51
7-Multi Stage Dockerfile

52
Multi Stage Dockerfile
Exemple: FROM ubuntu:latest AS BUILD_IMAGE
RUN apt update && apt install git -y
RUN git clone https://github.com/seeyassine/kitchen-landing-
page.git /kitchen-landing-page

FROM ubuntu:latest
LABEL "project"="kitchen"
LABEL "Author"="YASSINE"
ENV DEBIAN_FRONTEND=noninteractive

RUN apt update && apt install apache2 git -y


COPY --from=BUILD_IMAGE /kitchen-landing-page
/var/www/html/

CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]


VOLUME /var/log/apache2
WORKDIR /var/www/html/
EXPOSE 80
53
Multi Stage Dockerfile
Exemple:
seeyassine@lenovo:~$ mkdir dockerapp

seeyassine@lenovo:~/dockerapp$ vim Dockerfile


seeyassine@lenovo:~/dockerapp$ docker build -t myweb .

seeyassine@lenovo:~/dockerapp$ docker run -d --name mywebcon -p 9080:80 myweb

54
Multi Stage Dockerfile
Exemple:

55
Multi Stage Dockerfile
Exemple:
seeyassine@lenovo:~/dockerapp$ docker build -t seeyassine/myweb:v2 .

seeyassine@lenovo:~/dockerapp$ docker login -u seeyassine


seeyassine@lenovo:~/dockerapp$ docker push seeyassine/myweb:v2

seeyassine@lenovo:~/dockerapp$ docker run -d --name mywebsite -p 9080:80 seeyassine/myweb:v2


56
8-Docker Compose

57
Docker Compose
Qu'est-ce qu'un fichier Docker Compose ?
Un fichier Docker Compose est un fichier YAML qui définit une application Docker à
conteneurs multiples. Il spécifie les services, les réseaux et les volumes pour
l'application, ainsi que toute option de configuration supplémentaire.
For install use :
curl -SL https://github.com/docker/compose/releases/download/v2.29.6/docker-compose-linux-x86_64 -o
/usr/local/bin/docker-compose

58
Docker Compose
Exemple:

https://docs.docker.com/compose/gettingstarted/

59
9-Conclution

60
Conclution
Docker est largement utilisé pour le développement et la gestion d'applications dans un
environnement isolé et reproductible

STRATEGY N°3

61
Merci pour votre attention.

62

Vous aimerez peut-être aussi