Outils pour utilisateurs

Outils du site


workshop_docker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
workshop_docker [2023/11/01 21:54] – bigMaxworkshop_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:latest
 docker pull python:3.8-alpine docker pull python:3.8-alpine
 docker pull python:3.5-alpine docker pull python:3.5-alpine
-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 : <**registry**>/<**namespace**>/<**repository**>:<**tag**> La norme de nommage des images est la suivante : <**registry**>/<**namespace**>/<**repository**>:<**tag**>
-- La registry par défaut si omise est généralement le [dockerhub](https://hub.docker.com/search?image_filter=official&q=)+- La registry par défaut si omise est généralement le [dockerhub](https://hub.docker.com/search?q=)
 - 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'historique des images disponibles - Le repository est le dépôt qui contient tout l'historique des images disponibles
 - Le tag est la version de l'image (par défaut latest) - Le tag est la version de l'image (par défaut latest)
 +
 Exemple:  Exemple: 
 - alpine:3.18 - alpine:3.18
 - mysql - mysql
 +- ovhcom/venom:v1.1.0
  
 ``` bash ``` bash
Ligne 66: Ligne 70:
  
 ### Le Docker Hub ### 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é.+Ce qui permet vraiment une adoption très rapide de Docker, c'est son [dockerhub](https://hub.docker.com/search?q=). Il permet de partager des images Docker avec la communauté.
 Cela permet vraiment d'économiser beaucoup d'efforts, et de partager les bonnes idées et bonne pratiques pour construire des images. Cela permet vraiment d'économiser beaucoup d'efforts, et de partager les bonnes idées et bonne pratiques pour construire des images.
  
Ligne 73: 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'image précédente. 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'image précédente.
  
-### Le Dockerfile +[Représentation de overlayfs](https://www.researchgate.net/figure/An-instance-of-OverlayFS_fig2_337586231)
-Pour construire une Image Docker, on écrit un fichier Dockerfile. Ce fichier est composé de lignes de commande qui vont constituer une par une, pour chaque ligne, une nouvelle image, une nouvelle couche. Notre nouvelle image fraichement construite sera constitué de toutes les couches empilées.+
  
 ### Conteneur, runtime, image ### Conteneur, runtime, image
Ligne 81: Ligne 84:
 ``` bash ``` bash
 docker run alpine:3.18 echo "hello world"  ### Démarre un conteneur basé sur l'image alpine:3.18, exécute à l’intérieur la commande 'echo "hello world"' puis rend la main. docker run alpine:3.18 echo "hello world"  ### Démarre un conteneur basé sur l'image alpine:3.18, exécute à l’intérieur la commande 'echo "hello world"' puis rend la main.
-docker ps -a                               ### Liste tous les conteneurs sur la machines (démarrés ou arrêtés)+docker ps -a                               ### Liste tous les conteneurs sur la machine (démarrés ou arrêtés) 
 +``` 
 + 
 +### 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, Docker introduit "les volumes". Avec les volumes, Docker permet de "monter" au runtime n'importe quel répertoire de la machine hôte à l’intérieur d'un conteneur. Ainsi, si l'on configure certain volume, les données de nos conteneurs pourront être persistées en dehors de ceux-ci. 
 + 
 +``` bash 
 +docker volume ls                                                ### Liste les volumes. 
 +docker run alpine:3.18 sh -c "touch foo ; ls -l foo"            ### Créé et liste un fichier dans un conteneur 
 +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"   ### Crée ce fichier dans un conteneur donc le host current dir est monté dans work dir du conteneur (/tmp) 
 +ls -l foo                                                       ### Liste ce fichier sur le host
 ``` ```
  
Ligne 88: Ligne 103:
  
 ``` bash ``` bash
-docker run -d -p 8080:80 nginx  ### Démarre un conteneur basé sur l'image nginx:latest et map le port 8080 de l'hote sur le port 80 du conteneur. +docker run --name web -d -p 8080:80 nginx  ### Démarre un conteneur nommé web basé sur l'image nginx:latest et map le port 8080 de l'hote sur le port 80 du conteneur. 
-docker ps                       ### Liste tous les conteneurs sur la machines (démarrés ou arrêtés)+docker ps                              ### Liste les conteneurs démarrés sur la machine
 ``` ```
- 
 Navigué sur l'URL : [http://localhost:8080/](http://localhost:8080/) Navigué sur l'URL : [http://localhost:8080/](http://localhost:8080/)
 +``` 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
 +```
  
-### Les volumes +### Le Dockerfile 
-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, Docker introduit "les volumes". Avec les volumes, Docker permet de "monter" au runtime n'importe quel répertoire de la machine hôte à l’intérieur d'un conteneur. Ainsi, si l'on configure certain volume, les données de nos conteneurs pourront être persistées en dehors de ceux-ci.+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://github.com/mxbossard/dockerfile-example/blob/build1/Dockerfile)
  
 ### Reference ### Reference
Ligne 148: Ligne 169:
 ``` ```
   ip link delete docker0   ip link delete docker0
 +  
 +```
 +
 +Entrer dans un container avec un shell bash
 +```
 + docker ps -a #pour identifier l'ID du container
 + docker exec -it dcad9f270643 sh
 ``` ```
 ### Hello World ### Hello World
Ligne 234: 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'utilisations plus concretes. Un atelier pour des cas d'usages courants ?
 +- Doc d'install de docker-compose ?
  
 </markdown> </markdown>
 {{tag>infrastructure linux max {{tag>infrastructure linux max
 }} }}
workshop_docker.1698875687.txt.gz · Dernière modification : de bigMax