🔧 Utilisation

Ici on va parler de comment utiliser Docker en ligne de commandes, on parlera plus tard de systèmes tel que docker-compose, Kubernetes, Pterodactyl, Portainer ou autre.

▶️ Lancer un conteneur

Pour lancer un conteneur on va utiliser la commande docker run, voici un exemple :

sudo docker run --name mon-super-docker -e HELLO=world -v ./mon-volume:/home -p 8080:80 -it docker.io/library/debian

Ici dans cet exemple, on a plusieurs options à notre commande :

🗒️ Lister les conteneur et les images (ps, images)

Voici quelques commandes pour afficher des informations sur les conteneurs :

# Va afficher la liste des conteneurs en cours
sudo docker ps

# Va afficher la liste de tous les conteneurs
sudo docker ps -a

# Va afficher la liste des images docker
sudo docker images

📀 Gérer des images et des conteneurs (start, stop, rm)

# Arreter un conteneur
sudo docker stop CONTAINER_ID
# Relancer un conteneur
sudo docker start CONTAINER_ID

# Supprimer un conteneur (nécessite qu'il soit préalablement arreté)
sudo docker rm CONTAINER_ID

# Supprimer une image (nécessite qu'aucun conteneur n'en dépende)
sudo docker image rm IMAGE_ID

# Note: CONTAINER_ID peut aussi être le nom du conteneur

Créer une nouvelle image et la mettre en ligne (build et push)

On va voir en détail cette partie dans la prochaine partie.

🔬 Exécuter des commandes dans un conteneur en cours (exec)

Si on souhaite inspecter un conteneur on peut utiliser la commande exec

# Va entrer dans une shell bash du conteneur "mon-conteneur"
sudo docker exec -it mon-conteneur /bin/sh

# Va exécuter la commande "ls" dans mon-conteneur
sudo docker exec mon-conteneur ls

🔨 Compiler dans un environement propre avec Docker (exemple)

Si vous souhaitez compiler votre programme, imaginons en Rust, mais que vous souhaitez le faire dans un environement neuf pour empécher des incompatibilité pour les futurs utilisateur·ice·s. Vous pouvez utiliser Docker pour ça !

docker run --rm -u "$(id -u)":"$(id -g)" -v "$PWD":/usr/src/myapp -w /usr/src/myapp rust:bullseye cargo build --release

Pour décortiquer un peu la commande:


Revision #1
Created 26 April 2023 19:09:33 by SnowCode
Updated 26 April 2023 19:09:33 by SnowCode