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:
1❯ alias 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.