141 lines
1.9 KiB
Markdown
141 lines
1.9 KiB
Markdown
---
|
|
date: 2025-03-06
|
|
---
|
|
|
|
# Docker
|
|
|
|
---
|
|
|
|
## Virtualisation
|
|
|
|
- VirtualBox
|
|
- VMWare
|
|
- VSphere
|
|
- Proxmox
|
|
|
|
--
|
|
|
|
### Architecture
|
|
|
|
![[Pasted image 20250305170955.png]]
|
|
|
|
--
|
|
|
|
### Hyperviseur type 1 (natif)
|
|
|
|
![[Pasted image 20250305171345.png]]
|
|
|
|
--
|
|
|
|
### Hyperviseur type 2 (hosted)
|
|
|
|
![[Pasted image 20250305171415.png]]
|
|
|
|
--
|
|
|
|
### Avantages
|
|
|
|
+ Isolation complète
|
|
+ OS / noyau complètement émulés
|
|
+ Tests sur OS spécifiques
|
|
+ Lancer un logiciel non supporté
|
|
+ Environnment reproductible
|
|
+ Image partagée en ISO
|
|
+ Ressources disponibles fixes et programmables
|
|
|
|
---
|
|
|
|
## Docker
|
|
### arrive
|
|
|
|
--
|
|
|
|
### Docker
|
|
|
|
+ Emuler un OS
|
|
+ Sur un autre OS
|
|
+ De manière reproductible
|
|
|
|
--
|
|
|
|
### VMs vs Containers
|
|
|
|
Les différences
|
|
![[Pasted image 20250305172704.png]]
|
|
|
|
+ Pas d'hyperviseur
|
|
+ usage direct de l'hôte pour l'émulation
|
|
+ Les outils sont partagés également
|
|
|
|
--
|
|
|
|
### Avantages par rapport aux VMs
|
|
|
|
+ Légèreté
|
|
+ Moins de choses dans un container que dans un iso
|
|
+ Rapidité
|
|
+ De mise en route, d'exécution et de destruction
|
|
+ containers = VM jetables à la volée
|
|
+ Flexibilité dans l'usage des ressources
|
|
|
|
--
|
|
|
|
### Inconvénients par rapport aux VMs
|
|
|
|
+ Isolation partielle
|
|
+ Sécurité
|
|
+ Pas de ressources fixes
|
|
|
|
--
|
|
|
|
### VM ou container ?
|
|
|
|
#### VM si:
|
|
|
|
+ Besoin d'une isolation complète
|
|
+ D'accéder aux éléments intrinsèques d'un OS (kernel, libs, ...)
|
|
+ Usage en ressources prédéfini
|
|
|
|
#### Docker si:
|
|
|
|
+ Isolation partielle suffisante
|
|
+ "Juste" besoin d'une machine indépendante
|
|
+ Flexibilité (ressources, network, etc.)
|
|
|
|
--
|
|
|
|
### C'est pas tout
|
|
|
|
Docker rend programmable un tas de trucs
|
|
|
|
+ Création et le partage d'images
|
|
+ La mise en réseau des containers
|
|
+ Le partage de variables, de filesystem avec l'hôtes
|
|
+ ...
|
|
|
|
---
|
|
|
|
## Docker
|
|
|
|
### Les engrenages
|
|
|
|
--
|
|
|
|
### Fonctionnement général
|
|
|
|
![[Pasted image 20250305175750.png]]
|
|
|
|
--
|
|
|
|
### Images
|
|
|
|
+ Représentation d'un OS déjà préparé
|
|
+ Template pour les containers
|
|
+ Container = instance d'image
|
|
+ Organisée en layers
|
|
|
|
|
|
|
|
|
|
|