workshop_docker
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| workshop_docker [2023/11/01 21:40] – bigMax | workshop_docker [2026/03/27 09:59] (Version actuelle) – [Quelques commandes utiles] Benjamin Labomedia | ||
|---|---|---|---|
| Ligne 21: | Ligne 21: | ||
| ``` | ``` | ||
| Vous devez voir apparaitre le groupe docker dans la liste de vos groupes. | Vous devez voir apparaitre le groupe docker dans la liste de vos groupes. | ||
| + | Sinon, deconnectez votre session et reconnectez-vous pour que votre user aparaisse dans le groupe docker. | ||
| ### Télécharger les images du workshop | ### Télécharger les images du workshop | ||
| Ligne 26: | Ligne 27: | ||
| ``` bash | ``` bash | ||
| docker pull alpine:3.18 | docker pull alpine:3.18 | ||
| + | docker pull nginx: | ||
| docker pull python: | docker pull python: | ||
| docker pull python: | docker pull python: | ||
| - | docker pull mysql:latest | + | docker pull mysql |
| - | docker pull wordpress:latest | + | docker pull wordpress |
| ``` | ``` | ||
| Ligne 49: | Ligne 51: | ||
| La norme de nommage des images est la suivante : < | La norme de nommage des images est la suivante : < | ||
| - | - La registry par défaut si omise est généralement le [dockerhub](https:// | + | - La registry par défaut si omise est généralement le [dockerhub](https:// |
| - Le namespace par défaut est library, le namespace des images officielles administrés par Docker | - Le namespace par défaut est library, le namespace des images officielles administrés par Docker | ||
| - Le repository est le dépôt qui contient tout l' | - Le repository est le dépôt qui contient tout l' | ||
| - Le tag est la version de l' | - Le tag est la version de l' | ||
| + | |||
| Exemple: | Exemple: | ||
| - alpine:3.18 | - alpine:3.18 | ||
| - mysql | - mysql | ||
| + | - ovhcom/ | ||
| ``` bash | ``` bash | ||
| Ligne 62: | Ligne 66: | ||
| ``` | ``` | ||
| - | | : | + | >  | ### Layered FS (Système de fichier multi couche) | ||
| Ligne 72: | Ligne 77: | ||
| Chaque image est associé dans Docker a un hash. Lorsque l'on applique une modification à une image, on créé une nouvelle couche par dessus l' | Chaque image est associé dans Docker a un hash. Lorsque l'on applique une modification à une image, on créé une nouvelle couche par dessus l' | ||
| - | ### Le Dockerfile | + | [Représentation |
| - | Pour construire une Image Docker, on écrit un fichier Dockerfile. Ce fichier est composé | + | |
| - | + | ||
| - | ### Le Docker Hub | + | |
| - | Ce qui permet vraiment une adoption très rapide de Docker, c'est son Hub. Il permet de partager des images Docker avec la communauté. | + | |
| - | Cela permet vraiment d' | + | |
| ### Conteneur, runtime, image | ### Conteneur, runtime, image | ||
| Une image n'est pas un conteneur. Une image c'est principalement un FS qui est pré-paramétré. Un conteneur est l' | Une image n'est pas un conteneur. Une image c'est principalement un FS qui est pré-paramétré. Un conteneur est l' | ||
| - | ### Exposition de ports | + | ``` bash |
| - | Chaque conteneur dispose de sa stack réseau. Par défaut, | + | docker run alpine:3.18 echo "hello world" |
| + | docker ps -a ### Liste tous les conteneurs sur la machine (démarrés ou arrêtés) | ||
| + | ``` | ||
| ### Les volumes | ### Les volumes | ||
| Le FS (systeme de fichier) d'un conteneur n'est pas persistant. A la destruction du conteneur, son FS est également détruit. Si l'on veut migrer un conteneur d'une version à une autre, on est forcé de le remplacer, on ne peut pas récupérer le FS du précédent conteneur. Pour répondre à cette problématique, | Le FS (systeme de fichier) d'un conteneur n'est pas persistant. A la destruction du conteneur, son FS est également détruit. Si l'on veut migrer un conteneur d'une version à une autre, on est forcé de le remplacer, on ne peut pas récupérer le FS du précédent conteneur. Pour répondre à cette problématique, | ||
| + | |||
| + | ``` bash | ||
| + | docker volume ls ### Liste les volumes. | ||
| + | docker run alpine:3.18 sh -c "touch foo ; ls -l foo" | ||
| + | ls -l foo ### Liste ce fichier sur le host | ||
| + | docker run alpine:3.18 ls -l foo ### Liste ce fichier dans un nouveau conteneur | ||
| + | docker run -v $PWD:/tmp -w /tmp alpine:3.18 sh -c "touch foo" | ||
| + | ls -l foo ### Liste ce fichier sur le host | ||
| + | ``` | ||
| + | |||
| + | ### Exposition de ports | ||
| + | Chaque conteneur dispose de sa stack réseau. Par défaut, un service qui écoute sur un port dans le conteneur. Cela veut dire que vous devez connaitre l'IP de ce conteneur pour accéder au service depuis votre machine. Un mécanisme d' | ||
| + | |||
| + | ``` bash | ||
| + | docker run --name web -d -p 8080:80 nginx ### Démarre un conteneur nommé web basé sur l' | ||
| + | docker ps ### Liste les conteneurs démarrés sur la machine | ||
| + | ``` | ||
| + | Navigué sur l'URL : [http:// | ||
| + | ``` bash | ||
| + | docker kill web ### Tue le conteneur nommé web. | ||
| + | docker ps -a ### Liste tous les conteneurs sur la machine | ||
| + | docker rm web ### Liste les conteneurs démarrés sur la machine | ||
| + | docker ps -a ### Liste tous les conteneurs sur la machine | ||
| + | ``` | ||
| + | |||
| + | ### Le Dockerfile | ||
| + | Pour construire une Image Docker, on écrit un fichier Dockerfile. Ce fichier est composé de lignes de commandes qui vont constituer une par une, pour chaque ligne, une nouvelle image, un nouveau layer (une couche). Notre nouvelle image fraîchement construite sera constituée de toutes les couches empilées. | ||
| + | [Exemple de fichier Dockerfile](https:// | ||
| ### Reference | ### Reference | ||
| Ligne 139: | Ligne 169: | ||
| ``` | ``` | ||
| ip link delete docker0 | ip link delete docker0 | ||
| + | | ||
| + | ``` | ||
| + | |||
| + | Entrer dans un container avec un shell bash | ||
| + | ``` | ||
| + | | ||
| + | | ||
| ``` | ``` | ||
| ### Hello World | ### Hello World | ||
| Ligne 225: | Ligne 262: | ||
| ``` | ``` | ||
| Puis vous pouvez suivre le contenu du fichier README.md situé à la racine du dépot git. | Puis vous pouvez suivre le contenu du fichier README.md situé à la racine du dépot git. | ||
| + | |||
| + | |||
| + | # Retours | ||
| + | - A quoi sert Docker ? => Des exemples d' | ||
| + | - Doc d' | ||
| </ | </ | ||
| {{tag> | {{tag> | ||
| }} | }} | ||
workshop_docker.1698874805.txt.gz · Dernière modification : de bigMax
