Aller au contenu principal

commands-de-bases-docker

Commandes de bases docker

commands 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