# Docker

Docker est une plateforme présente sur Linux et Windows, permettant de lancer certaines applications dans des conteneurs. Ces conteneurs permettent de créer un micro-système isolé du système principal.

Et il se base sur des images que l'on peut créer soi-même ou récupérer sur le dépôt officiel de Docker.

Le dépôt est alimenté soit par des fans de certains programmes, soit par leurs créateurs originaux.

# Installation de Docker sur debian

##### <span style="white-space:pre-wrap;">Pour installé docker, j'utilise les commandes donner sur leur site </span>[<span style="white-space:pre-wrap;">officiel </span>](https://docs.docker.com/engine/install/debian/):

```
# Add Docker's official GPG key:
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/debian/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/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
```

##### Dans un premier temps, on installe ça-certificates et curl pour pouvoir ajouter le certificat du dépôt Docker et récupérer la clé, rajoute la clé d'identification du dépôt de Docker en lui donnant les droits de lecture, puis on finit par rajouter le dépôt :

[![image.png](https://docu.lerenard.eu/uploads/images/gallery/2025-04/scaled-1680-/M3noimeG6Vf75Ak0-image.png)](https://docu.lerenard.eu/uploads/images/gallery/2025-04/M3noimeG6Vf75Ak0-image.png)

##### Après la fin du "****apt-get update****", il nous reste plus qu'à faire :

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

##### On installe donc tous ce qui est en rapport avec docker, que ce sois son noyau et ces dépendance :

[![image.png](https://docu.lerenard.eu/uploads/images/gallery/2025-04/scaled-1680-/vB0OUnCQWA2lKMHB-image.png)](https://docu.lerenard.eu/uploads/images/gallery/2025-04/vB0OUnCQWA2lKMHB-image.png)

##### Pour finir, nous allons faire la commande de base pour vérifier que docker fonctionne :

```
sudo docker run hello-world
```

##### Et on voit que docker fonctionne parfaitement bien :

[![image.png](https://docu.lerenard.eu/uploads/images/gallery/2025-04/scaled-1680-/2KT1hg2vZ9OQ5JwR-image.png)](https://docu.lerenard.eu/uploads/images/gallery/2025-04/2KT1hg2vZ9OQ5JwR-image.png)

# Installation d'une web gui, Portainer

##### Portainer est une interface web pour Docker. Portainer tourne lui-même dans un conteneur et permet une configuration de Docker de façon intuitive.

##### Dans un premier temps, on va crée le volume persistant qui nous servira pour le conteneur avec cette commande :

```
docker volume create portainer_data
```

##### Voilà le volume créé :

[![image.png](https://docu.lerenard.eu/uploads/images/gallery/2025-04/scaled-1680-/Pj83zlci2uelxE0m-image.png)](https://docu.lerenard.eu/uploads/images/gallery/2025-04/Pj83zlci2uelxE0m-image.png)

##### Puis, on va tappé cette commande :

```
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts
```

##### Cette commande permet à Docker de lancer la configuration du conteneur en autorisant les ports 8000 et 9443 à communiquer en dehors du conteneur (****-p****), de lui donner un nom (****--name****), de lui ordonner de redémarrer à chaque démarrage (****--restart=always****), de me définir où se trouveront les fichiers de configuration systèmes et utilisateur (****-v****) et le nom du dépôt qu'il doit utiliser pour configurer le conteneur (****portainer-ce:lts****) :

[![image.png](https://docu.lerenard.eu/uploads/images/gallery/2025-04/scaled-1680-/AhSuMUyBdNG5Ftbe-image.png)](https://docu.lerenard.eu/uploads/images/gallery/2025-04/AhSuMUyBdNG5Ftbe-image.png)

##### Un coup de "****docker ps****" pour vérifier que le conteneur sois bien créé et bien up :

[![image.png](https://docu.lerenard.eu/uploads/images/gallery/2025-04/scaled-1680-/IdGGv3ZNE5qSWck9-image.png)](https://docu.lerenard.eu/uploads/images/gallery/2025-04/IdGGv3ZNE5qSWck9-image.png)

##### Pour finir, on accéde à l'interface web en tapant https://adresseip:9443 dans mon cas, 192.168.10.20:9443 :

[![image.png](https://docu.lerenard.eu/uploads/images/gallery/2025-04/scaled-1680-/f4gpuPJATAtQtacj-image.png)](https://docu.lerenard.eu/uploads/images/gallery/2025-04/f4gpuPJATAtQtacj-image.png)

##### <span style="white-space:pre-wrap;">Si jamais vous dépassez la limite de temps (environs 2min) pour la première configuration vous devrez éteindre le container </span>****docker stop portainer****<span style="white-space:pre-wrap;"> puis le redémarrer</span> ****docker start portainer****.

##### Vu que c'est la première fois que je me connecte à portainer, pour cela il propose comme "****Username****<span style="white-space:pre-wrap;">" admin que je vais laissé et demandé un </span>****mot de passe****<span style="white-space:pre-wrap;"> que je vais rentré puis faire "</span>****Create user****" :

[![image.png](https://docu.lerenard.eu/uploads/images/gallery/2025-04/scaled-1680-/uplTvUgGS9ibqtYe-image.png)](https://docu.lerenard.eu/uploads/images/gallery/2025-04/uplTvUgGS9ibqtYe-image.png)

##### Me voilà connecté.

# Relier deux instance portainer différente