Fiche procédure Docker
Un conteneur, dans le contexte informatique, est un environnement logiciel
autonome et isolé qui regroupe une application et toutes ses dépendances
nécessaires à son exécution. Les conteneurs permettent de garantir la cohérence et
la portabilité des applications, car ils peuvent être déployés de manière cohérente
sur diverses plates-formes sans être affectés par les différences de configuration
sous-jacentes.
Docker permet d'envoyer du code plus rapidement, de standardiser les opérations
de vos applications, de migrer aisément du code et de faire des économies en
améliorant l'utilisation des ressources. Avec Docker, on obtient un objet unique que
l’on peut exécuter n'importe où de manière fiable.
Dans notre exemple, après avoir créé une debian console pour utiliser docker :
A noter, pour rentrer les commandes plus facilement que directement sur la VM
console, on active le protocole ssh, il suffit simplement d’ouvrir un terminal sur la
machine est faire la commande ssh user@IP (user en etu1 et ip de la vm) :
Puis passer en root avec su - dans le terminal.
Glain Pierre S2-SIO
Installation de Docker
Dans le terminal ci-dessus (en root), copier ce bloc de commandes.
apt-get update
apt-get install ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL [Link] | gpg --dearmor -o
/etc/apt/keyrings/[Link]
chmod a+r /etc/apt/keyrings/[Link]
echo \
"deb [arch="$(dpkg --print-architecture)"
signed-by=/etc/apt/keyrings/[Link]]
[Link] \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/[Link].d/[Link] > /dev/null
apt-get update
Puis la commande : - apt-get install docker-ce docker-ce-cli [Link]
docker-buildx-plugin docker-compose-plugin
Pour tester si cela marche: - docker run hello-world
Un message Hello from Docker ! devrait apparaître.
Nous pouvons également observer les différentes commandes possibles avec la
commande docker compose.
Utilisation de Docker
Récupérer une image :
docker pull nom_image
docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx
Glain Pierre S2-SIO
Pour vérifier :
docker exec -it nom_container sh -c "uname -a"
On obtient donc la version de linux du container.
Lancer un container :
docker -p port run nom_container
docker -p 8080:80 run nom_container
docker start nom_container
Puis dans le navigateur, tapez l’adresse ip de la machine, par exemple :
Récupérer une liste de conteneurs :
docker ps -a
docker ls -a
(Il faut ouvrir 2 terminal pour laisser run le docker)
Vérifier le statut du conteneur :
Toujours avec docker ps -a
Le docker devrait être au statut Up.
Pour récupérer le nom :
Linux debian-console 6.1.0-11-amd64 #1 SMP PREEMPT_DYNAMIC Debian
6.1.38-4 (2023-08-08) x86_64 GNU/Linux
Pour stopper un conteneur :
docker stop mon_container
Glain Pierre S2-SIO
Lancer un conteneur précis :
Pour lancer un container précis avec son nom, nous pouvons utiliser le -e
docker run -p 8080:80 -e INSTANCE_NAME=nom_container nom_image
Supprimer un conteneur :
-docker system prune
Pour supprimer tous les conteneurs non utilisés.
-docker rm ID_or_Name
Pour supprimer un seul conteneur.
Supprimer une image :
-docker rmi nom_image
-docker image rm nom_image
-docker image purge
Pour supprimer toutes les images :
docker system prune -a
Pour lister les images :
docker images
docker images -a
Pour lister les réseaux :
docker network ls
Glain Pierre S2-SIO
Pour lister les container lancés par docker-compose :
docker-compose ps
Création personnelle d’image
Créer une image :
docker image build [OPTIONS] PATH | URL | -
Créer un fichier :
touch nom_fichier
Modifier un fichier :
nano nom_fichier
Vérifier que le fichier html est bien créée :
ls ou cat /home/user/nom_fichier
Automatiser le déploiement des
conteneurs
Créer son fichier de configuration :
Tout d’abord, il faut créer le fichier [Link] :
version: '3'
Glain Pierre S2-SIO
services:
postgresql:
image: postgres
container_name: pg-docker
ports:
- "5400:5432"
environment:
- POSTGRES_USER=docker
- POSTGRES_PASSWORD=docker
volumes:
- ./[Link]:/etc/postgresql/[Link]
command: postgres -c config_file=/etc/postgresql/[Link]
restart: always
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
Lancer un conteneur précis :
Pour lancer un container précis avec son nom, nous pouvons utiliser le -e
docker run -p 8080:80 -e INSTANCE_NAME=name
Pour stopper un conteneur :
docker stop my_container
Glain Pierre S2-SIO
Lancer un conteneur en arrière-plan :
docker run -d -p 8080:80 -e INSTANCE_NAME=name
Récupérer les logs console d’un conteneur :
docker logs <id_conteneur>
Glain Pierre S2-SIO