commands-de-bases-docker
Commandes de bases docker
Intro
Docker est un moteur de conteneur d’applications développé en langage GO, une technologie de déploiement d’applications basée sur la conteneurisation et le mécanisme de bac à sable. Il peut être appliqué à des scénarios tels que les tests automatisés, le packaging, l’intégration continue et les applications de publication.
Commnds
- Affiche la liste des conteneurs
docker ps -a
- Start le conteneur arrêté:
docker start container_id
- Permet de stoper le contaneur:
docker stop container_id
- Permet de redemarrer le conteneur:
docker restart container_id
- Supprimer le conteneur:
docker rm container_id
- Supprime une image docker:
docker rmi
- Kill les conteneurs en cours d'exécution (y compris les processus):
docker kill container_id
- Entrer dans le conteneur:
docker exec -it container_id bash
Lancer un conteneur avec bash
Cette commande permet de lancer un conteneur en mode intéractif et détaccher avec bash [notes]: il vous faut une image de type debian ou ubuntu pour lancer bash
docker exec -it container_id bash
Si vous avez pas d'images Debian ou Ubuntu
Lancer le conteneur avec /bin/bash
docker exec -it 0d15561b9f10 /bin/bash
Copy
docker cp sinn-server:/data/user /data/user
docker cp /data/user sinn-server:/data/user
Logs docker
Afficher les journaux de conteneur = journaux de docker.
docker logs container_id
Copie de données entre le conteneur et l'hôte
docker cp
Delete volume docker
Ici on va supprimer les conteneurs et les volumes.
Suppresssion des volumes suspendus
docker volume rm $(docker volume ls -qf dangling=true)
Supprimer tous les volumes commande irréversible faites donc attention en l'utilisant.
docker volume prune
Supprimer les conteneurs et leurs volumes.
sudo docker rm -vf $(sudo docker ps -aq) && sudo docker volume prune -f
Delete conteneurs
Voici un extrait de code pour tuer tous les conteneurs Docker à l’aide de la CLI :
sudo docker kill $(docker ps -q)
Supprimer tous les conteneurs en mode avec kill
Vous pouvez également utiliser cet extrait :
docker container kill $(sudo docker container ls -q)
Que se passe-t-il s'il n'y a pas de conteneurs en cours d'exécution ? Essayons :
sudo docker kill $(sudo docker ps -q) 2>/dev/null && echo $?
Pour rendre la ligne unique ci-dessus plus sûre à automatiser (c'est-à-dire ne pas renvoyer d'erreurs pour les états valides), nous voulons ignorer docker kill lorsqu'il n'y a pas de conteneurs. Ici, nous allons définir les identifiants de conteneur sur une variable :
containers=$(sudo docker ps -q)
sudo docker kill $containers
Nous pouvons maintenant tester les conteneurs avant de les détruire. Voici comment procéder :
containers=$(sudo docker ps -q)
if [ ! -z $containers ]; then
sudo docker kill $containers;
fi
Ou, sur un système bash plus moderne, vous pouvez utiliser cette ligne unique :
c=$(docker ps -q) && [[ $c ]] && docker kill $c
Retirez les conteneurs en fonction de leur statut :
docker rm -v $(docker ps --filter status=exited -q)
Pour nettoyer tous les conteneurs sur ma machine de développement :
docker rm -v -f $(docker ps -qa)
Ces deux commandes permettent de supprimer tous les conteneurs ou toutes les images.
Pour les conteneurs
sudo docker rm -f $(sudo docker ps -a -q)
Pour les images
sudo docker image remove -f $(sudo docker images -a -q)
Supprimer plusieurs réseaux
[plus d'informations] network-docker
Pour lister les différents réseaux du groupe
docker network ls
Pour supprimer plusieurs réseaux en un seul, commande, fournir plusieurs noms de réseau ou ID
docker network rm id-reseau
Pour supprimer plusieurs réseaux avec ID ou le nom du réseau
docker network rm id-reseau my-network-name
Push images registry docker-hub
[commands:]
sudo docker login -u username -p password
sudo docker build -t image_bluid .
sudo docker tage image_build:tag account_user_dockerhub/image_build:v1.0
sudo docker push account_user_dockerhub/image_build:v1.0
# delete image
docker rmi account_user_dockerhub/image_build:v1.0
#ou
docker rmi -f image_id
Script pour installer docker sous debian
#!/bin/bash
# Install packages required for the installation
# doc install github: https://github.com/docker/docker-install
sudo su &&
apt update &&
apt install ca-certificates curl gnupg apt-transport-https gpg
# Download GPG key and store repository in the system
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" |tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
# Install Docker packages
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose
Script pour installer docker sous ubuntu
#!/bin/bash
# Install packages required for the installation
# doc install github: https://github.com/docker/docker-install
sudo su &&
apt update &&
apt install ca-certificates curl gnupg apt-transport-https gpg
# Download GPG key and store repository in the system
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu stable" |tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
# Install Docker packages
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose