Stopper docker des qu'on a plus besoin.

2021-05-19

Un script pour stopper docker et son interface réseau.

Des fois on demarre docker juste pour tester quelque chose, une fois fini ce n’est plus la peine de le laisser tourner pour rien. J’ai codé ce petit script que j’utilise sur Archlinux avec un alias des que je n’en ai plus besoin.
D’abord l’alias et puis ensuite le script:

1alias stpd
2stpd='sudo ~/codes/docker/stopDocker/stopDocker.sh'

Il faut le lancer en root car on va killer le daemon docker. Ce n’est pas super utile car il suffit de taper docker ps et puis docker se remets en route mais …

 1#!/usr/bin/bash
 2
 3# Stoppe le daemon docker et son device reseau.
 4SUCCES=0
 5
 6# Colors
 7RED=$(printf '\033[31m')
 8BLUE=$(printf '\033[34m')
 9BOLD=$(printf '\033[1m')
10RESET=$(printf '\033[m')
11
12# Demande confirmation.
13function yes_or_no() {
14  while true; do
15    read -p "$* [y/n]: " yn
16      case $yn in
17        [Yy]*) return 0  ;;
18        [Nn]*) echo "Annulation confirmée." ; exit $SUCCES ;;
19      esac
20  done
21}
22
23# Arrêt de l'interface réseau.
24function arret_interface(){
25    if [[ -n $(ip maddr | grep $1) ]]; then
26    sudo ip link set dev $1 down && echo "$BLUE L'interface réseau $1 est deconnectée. $RESET"
27  else
28    echo "L'interface $1 est déjà a l'arrêt."
29  fi
30}
31
32# Droits root ?
33if [ "$EUID" -ne 0 ]; then
34    echo "$RED Vous devez avoir des privilèges d'administration pour cette action. $RESET"
35    echo
36    exit $SUCCES 
37else
38    P_ID=$(pidof dockerd)
39    DEVICE="docker0"
40    
41    # pid dockerd est null ?
42    if [[ -n $P_ID ]]; then
43        echo "Le processus $BOLD dockerd $RESET avec le pid : $P_ID sera arrêté."
44        yes_or_no
45        #pkill or killall dockerd
46        sudo kill $P_ID 
47        echo "$BLUE Docker est a l'arrêt. $RESET"
48        arret_interface $DEVICE
49        echo ""
50    else
51        echo " Docker est deja a l'arrêt."
52        arret_interface $DEVICE
53        printf '\a'
54    fi
55fi
56
57exit $SUCCES 
58#stopDocker.sh (END)

On étais parti d’ici (device down), on a tente d’automatiser plus haut.

1sudo ip link set dev docker0 down

Et puis c’est pour le plaisir de faire un petit script.

A lire : un site intéressant sur la manipulation réseau avec docker.



More posts like this