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