https://github.com/camara94/decouvrir-docker
Partez à la découverte de Docker, une solution de virtualisation permettant de faire tourner des applications dans des conteneurs indépendants.
https://github.com/camara94/decouvrir-docker
containers docker
Last synced: 2 months ago
JSON representation
Partez à la découverte de Docker, une solution de virtualisation permettant de faire tourner des applications dans des conteneurs indépendants.
- Host: GitHub
- URL: https://github.com/camara94/decouvrir-docker
- Owner: camara94
- License: gpl-3.0
- Created: 2021-04-13T01:52:17.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-04-17T02:10:28.000Z (over 4 years ago)
- Last Synced: 2025-04-09T15:12:04.118Z (6 months ago)
- Topics: containers, docker
- Homepage:
- Size: 3.6 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Decouvrir-docker
Partez à la découverte de Docker, une solution de virtualisation permettant de faire tourner des applications dans des conteneurs indépendants.## Résumé du cours
Partez à la découverte de Docker, une solution de virtualisation permettant de faire tourner des applications dans des conteneurs indépendants. Dans cette formation pour administrateurs et chefs de projet, Samir Lakhdari vous fait découvrir les principes et le fonctionnement de Docker. Vous apprendrez à exécuter des conteneurs à partir d'images d'applications et vous verrez également comment créer vos propres images. Vous aborderez aussi le stockage de données dans des volumes persistants, la communication entre conteneurs, le réseau, la distribution d'images et, bien entendu, la sauvegarde. À la fin de cette formation, vous serez capable d'exécuter des conteneurs Docker avec des applications tierces ou avec vos propres applications.# Machine Virtuelle VS Docker
## Architecture Docker
### Moteur Docker (Engine)

### Docker Client

### Docker Image

### Docker Conteneur

### Docker Registre (Librairie d'images)
## Appréhender le fonctionnement de Docker
## Installer Docker
Après avoir decouvrir Docker, nous allons l'installer selon notre plateforme à travers ce lien ci-dessous:
[Installer Docker](https://docs.docker.com/engine/install/)## Quelques commande docker
docker search nomImage # Pour chercher une image
docker pull nomImage # pour telechager une image
docker images # pour voir la liste des image en local
docker rmi -f nomImage # pour supprimer une image
docker rm -f $(docker ps -a -q) # pour supprimer également une image
## Explorer Docker Hub
Vous pouvez également explorer docker hub pour chercher des images et télécharger en local pour vos utilisations personnelles à travers ce lien ci-dessous:
[Docker Hub](https://hub.docker.com)
## Appréhender la Docker
* pour afficher le manuel de la commande docker, on utilise l'option **--help**:docker --help | more

* pour afficher l'aide une commande de context on utilise également l'option **--help**:docker container --help | more
## Le Cycle de vie d'un conteneur docker
### Le Cycle de vie de base d'un conteneur docker

### Le Cycle de vie de avancé d'un conteneur docker
## Exécuter un conteneur docker
*docker run nomImage
*docker run -ti nomImage
pour l'exécuter en mode interactif
*docker ps -a
pour afficher les conteneurs la lancé
* [Ressource pour configurer mongodb sur mon VPS](https://www.bmc.com/blogs/mongodb-docker-container/)
## Exécution en mode attaché et detaché
*docker run --name=mongodb --hostnamehost01 -it mong
* pour verifier le nomhostname
* pour arrêter un conteneurexit
* mode d'exécution en arrière plan on ajoute l'option **-d** ou **--detach** ex:docker run -d -it mongo
* on peut aussi balancer d'un mode en un autre avec les combinaisions suivantes:
* on peut vérifier les log d'un conteneur en arrière plandocker logs nomImage
## Inspecter un conteneur
* on va lancer d'abord un conteneur pour pouvoir effectuer des des inspections.
docker run -d -P --name=web03 --hostname=cont03 nginx
* primièrement nous allons lancer la commandedocker inspect web03

* on peut également extraire une partie ou un attribut d'un champs avec la commande suivante:
docker inspect --format='{{.state.Status}} web03
* autre par exemple:
docker inspect --format='{{.NetworkSettings.IPAddres}}' web03
* une dernière possibilité est:
docker inspect --format='{{json .State}}' web03
## Comment lister les conteneur docker
* pour lister les conteneurs lancés
docker ps

* pour lister tous les conteneurs même ceux qui sont arrêtes
docker ps -a

* pour voir les n derniers conteneurs
docker ps --last 2
* afficher uniquement les ID des conteneurs
docker ps -q

* les options de filtrage
docker ps -a --filter name=web
docker ps -a --filter status=exited

* lorsqu'on essaye d'arrêter un conteneur en cours d'exécution on obtient une erreur
*docker rm web03

* pour remedier à ce problème, on exécute cette commande
docker rm -f web03

* pour supprimer tous les conteneurs arrêtés
docker rm $(docker ps -aq --filter status=exited)

## Comprendre une image docker
### C'est quoi une couche docker ?

### Qu'est ce qu'une image docker
Une image est constituée de un plusieurs couche docker
#### Comment créer une image

#### Espace de nommage
## Comment créer une image à partir d'un conteneur docker
*docker run -it --name=mycentos centos
* parfaut la commandewget
n'existe pas sur centos

* on va installer **wget** dans centos
*yum install wget

* on va tester **wget**wget
, puis on l'arrêter et enfin nous allons testerdocker ps -a

* on peut visualiser les différences
docker diff mycentos

> pour dire que dans le dossier **/bin** nous avons installer **wget**
> A sigifie **Ajout**
> C sigifie **Change**
> D signifie **Delete**### Comment enrégister sur notre depôt
docker commit mycentos ldamaro98/mycentos:1.0
## Générer des volumes docker
* Volumes nommés
docker volume create --name=vol1
* Pour afficher la liste des volumes docker
docker volume ls
* Pour monter un volume
docker run -it -v vol1:/www/html mycentos
* Pour inspeter le volume
docker volume inspect vol1
* Pour supprimer un volume
docker volume rm -f vol1
* Pour créer un anonyme, on le crée lors de lancement d'un conteneur
docker run -v /var/www/html mycentos
* Pour supprimer un volume anonyme, lors de la suppression d'une image
docker rm -v idImage
## Aborder les volumes d'hôte
* nous allons d'abord lancer un serveur **nginx**
docker run -d --name=nginx nginx
* Pour se connecter à un conteneur docker
docker exec -it nginx
* Pour afficher le contenu du ficher de configuration
cat /etc/nginx/nginx.conf

* Pour quitter(se deconnecter de **nginx**)
exit
* Pour arrêter le conteneur
docker stop nginx
* Pour récupérer un du conteneur vers un fichier local
mkdir nginxconf && cd nginxconf
docker cp nginx:/etc/nginx/nginx.conf .

* Pour monter le fichier dans notre conteneur
docker run -d --name=nginx2 -v /home/user1/nginx/nginx.conf:/etc/nginx/nginx.conf
* Se connecter au connecter et vérifier
docker exec -it nginx2 bash
cat /etc/nginx/nginx.conf
## Découvrir le modèle réseau
