dk: ps, ls et rm prennent des filtres. ajout de pull
This commit is contained in:
parent
d5f8fa4fff
commit
52c3d7a690
188
dk
188
dk
@ -88,12 +88,50 @@ COMMANDES
|
|||||||
systemd|systemd-unit
|
systemd|systemd-unit
|
||||||
Générer une unité systemd qui démarre les services. A priori, ce n'est
|
Générer une unité systemd qui démarre les services. A priori, ce n'est
|
||||||
nécessaire que si aucune politique de redémarrage n'a été définie.
|
nécessaire que si aucune politique de redémarrage n'a été définie.
|
||||||
ps
|
ps [filter|name=value]
|
||||||
Afficher les containers en cours d'exécution
|
Afficher les containers en cours d'exécution
|
||||||
ls
|
Le filtre est une expression régulière de type awk qui est mise en
|
||||||
|
correspondace avec les noms de l'image et de la tâche.
|
||||||
|
Il est aussi possible d'utiliser un filtre docker de la forme name=value
|
||||||
|
- ancestor=(<image-name>[:tag]|<image-id>| <image@digest>)
|
||||||
|
containers created from an image or a descendant.
|
||||||
|
- before=(<container-name>|<container-id>)
|
||||||
|
- expose=(<port>[/<proto>]|<startport-endport>/[<proto>])
|
||||||
|
- exited=<int> an exit code of <int>
|
||||||
|
- health=(starting|healthy|unhealthy|none)
|
||||||
|
- id=<ID> a container's ID
|
||||||
|
- is-task=(true|false)
|
||||||
|
- label=<key> or label=<key>=<value>
|
||||||
|
- name=<string> a container's name
|
||||||
|
- network=(<network-id>|<network-name>)
|
||||||
|
- publish=(<port>[/<proto>]|<startport-endport>/[<proto>])
|
||||||
|
- since=(<container-name>|<container-id>)
|
||||||
|
- status=(created|restarting|removing|running|paused|exited)
|
||||||
|
- volume=(<volume name>|<mount point destination>)
|
||||||
|
ls [filter|name=value]
|
||||||
Lister les images actuellement présentes
|
Lister les images actuellement présentes
|
||||||
rm
|
Le filtre est une expression régulière de type awk qui est mise en
|
||||||
Supprimer une image
|
correspondance avec le nom de l'image. Un suffixe :tag permet de ne
|
||||||
|
sélectionner que les images correspondant au filtre qui ont le tag
|
||||||
|
spécifié.
|
||||||
|
Il est aussi possible d'utiliser un filtre docker de la forme name=value
|
||||||
|
- dangling=(true|false) - find unused images
|
||||||
|
- label=<key> or label=<key>=<value>
|
||||||
|
- before=(<image-name>[:tag]|<image-id>| <image@digest>)
|
||||||
|
- since=(<image-name>[:tag]|<image-id>| <image@digest>)
|
||||||
|
- reference=(pattern of an image reference)
|
||||||
|
pull filter
|
||||||
|
Mettre à jour une ou plusieurs images
|
||||||
|
Le filtre est une expression régulière de type awk qui est mise en
|
||||||
|
correspondance avec le nom de l'image. Un suffixe :tag permet de ne
|
||||||
|
sélectionner que les images correspondant au filtre qui ont le tag
|
||||||
|
spécifié.
|
||||||
|
rm filter
|
||||||
|
Supprimer une ou plusieurs images
|
||||||
|
Le filtre est une expression régulière de type awk qui est mise en
|
||||||
|
correspondance avec le nom de l'image. Un suffixe :tag permet de ne
|
||||||
|
sélectionner que les images correspondant au filtre qui ont le tag
|
||||||
|
spécifié.
|
||||||
X|prune
|
X|prune
|
||||||
Supprimer les containers et les images inutilisées
|
Supprimer les containers et les images inutilisées
|
||||||
|
|
||||||
@ -196,6 +234,8 @@ FONCTIONS de update-apps.conf
|
|||||||
automatiquement, sauf si une valeur NOFIX est spécifiée."
|
automatiquement, sauf si une valeur NOFIX est spécifiée."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function echo_lines() { local IFS=$'\n'; echo "$*"; }
|
||||||
|
|
||||||
function get_version() {
|
function get_version() {
|
||||||
local GIT_DIR; unset GIT_DIR
|
local GIT_DIR; unset GIT_DIR
|
||||||
if git rev-parse --git-dir >/dev/null 2>&1; then
|
if git rev-parse --git-dir >/dev/null 2>&1; then
|
||||||
@ -1359,14 +1399,140 @@ while [ $# -gt 0 ]; do
|
|||||||
enote "Profil $PROFILE"
|
enote "Profil $PROFILE"
|
||||||
auto_systemd_unit "${args[@]}" || die
|
auto_systemd_unit "${args[@]}" || die
|
||||||
;;
|
;;
|
||||||
ps) docker container ps -a || die;;
|
ps)
|
||||||
ls) docker image ls || die;;
|
pscmd=(
|
||||||
|
docker container ps -a
|
||||||
|
--format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Status}}\t{{.RunningFor}}\t{{.Ports}}\t{{.Command}}"
|
||||||
|
)
|
||||||
|
filtercmd=(cat)
|
||||||
|
awkscript='
|
||||||
|
NR == 1 { print; next }
|
||||||
|
($2 ~ filter || $3 ~ filter) { print }
|
||||||
|
'
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
# pas de filtre
|
||||||
|
:
|
||||||
|
elif [ "$1" == -- ]; then
|
||||||
|
# fin de la commande
|
||||||
|
shift
|
||||||
|
elif [[ "$1" == *=* ]]; then
|
||||||
|
# filtre docker
|
||||||
|
pscmd+=(--filter "$1")
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
# expression régulière
|
||||||
|
filtercmd=(awk -v filter="$1" "$awkscript")
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
set -o pipefail
|
||||||
|
"${pscmd[@]}" | "${filtercmd[@]}" || die
|
||||||
|
;;
|
||||||
|
ls)
|
||||||
|
lscmd=(docker image ls)
|
||||||
|
filtercmd=(cat)
|
||||||
|
awkscript='
|
||||||
|
BEGIN {
|
||||||
|
if (split(filter, parts, /:/) > 1) {
|
||||||
|
filter = parts[1]
|
||||||
|
tag = parts[2]
|
||||||
|
} else {
|
||||||
|
tag = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
NR == 1 { print; next }
|
||||||
|
(filter == "" || $1 ~ filter) && (tag == "" || $2 ~ tag) { print }
|
||||||
|
'
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
# pas de filtre
|
||||||
|
:
|
||||||
|
elif [ "$1" == -- ]; then
|
||||||
|
# fin de la commande
|
||||||
|
shift
|
||||||
|
elif [[ "$1" == *=* ]]; then
|
||||||
|
# filtre docker
|
||||||
|
lscmd+=(--filter "$1")
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
# expression régulière
|
||||||
|
filtercmd=(awk -v filter="$1" "$awkscript")
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
set -o pipefail
|
||||||
|
"${lscmd[@]}" | "${filtercmd[@]}" || die
|
||||||
|
;;
|
||||||
|
pull)
|
||||||
|
lscmd=(docker image ls)
|
||||||
|
filtercmd=(awk 'NR == 1 { print; next } $2 !~ /</ { print }')
|
||||||
|
awkscript='
|
||||||
|
BEGIN {
|
||||||
|
if (split(filter, parts, /:/) > 1) {
|
||||||
|
filter = parts[1]
|
||||||
|
tag = parts[2]
|
||||||
|
} else {
|
||||||
|
tag = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
NR == 1 { print; next }
|
||||||
|
(filter == "" || $1 ~ filter) && (tag == "" || $2 ~ tag) && $2 !~ /</ { print }
|
||||||
|
'
|
||||||
|
if [ $# -eq 0 -o "$1" == -- ]; then
|
||||||
|
# pas de filtre
|
||||||
|
ewarn "pull: Vous devez spécifier l'image à mettre à jour"
|
||||||
|
continue
|
||||||
|
elif [[ "$1" == *=* ]]; then
|
||||||
|
# filtre docker
|
||||||
|
lscmd+=(--filter "$1")
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
# expression régulière
|
||||||
|
filtercmd=(awk -v filter="$1" "$awkscript")
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
all="$("${lscmd[@]}" | "${filtercmd[@]}")"
|
||||||
|
setx -a images awk 'NR == 1 { next } { print $1 ":" $2 }' <<<"$all"
|
||||||
|
if [ ${#images[*]} -gt 0 ]; then
|
||||||
|
echo "$all"
|
||||||
|
ask_yesno "Etes-vous sûr de vouloir mettre à jour ces images?" O || die
|
||||||
|
for image in "${images[@]}"; do
|
||||||
|
docker pull "$image" || die
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
;;
|
||||||
rm)
|
rm)
|
||||||
args=()
|
lscmd=(docker image ls)
|
||||||
while [ $# -gt 0 -a "$1" != -- ]; do
|
filtercmd=(cat)
|
||||||
args+=("$1"); shift
|
awkscript='
|
||||||
done
|
BEGIN {
|
||||||
docker image rm "${args[@]}" || die
|
if (split(filter, parts, /:/) > 1) {
|
||||||
|
filter = parts[1]
|
||||||
|
tag = parts[2]
|
||||||
|
} else {
|
||||||
|
tag = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
NR == 1 { print; next }
|
||||||
|
(filter == "" || $1 ~ filter) && (tag == "" || $2 ~ tag) { print }
|
||||||
|
'
|
||||||
|
if [ $# -eq 0 -o "$1" == -- ]; then
|
||||||
|
# pas de filtre
|
||||||
|
ewarn "rm: Vous devez spécifier l'image à supprimer"
|
||||||
|
continue
|
||||||
|
elif [[ "$1" == *=* ]]; then
|
||||||
|
# filtre docker
|
||||||
|
lscmd+=(--filter "$1")
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
# expression régulière
|
||||||
|
filtercmd=(awk -v filter="$1" "$awkscript")
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
all="$("${lscmd[@]}" | "${filtercmd[@]}")"
|
||||||
|
setx -a images awk 'NR == 1 { next } { print $3 }' <<<"$all"
|
||||||
|
if [ ${#images[*]} -gt 0 ]; then
|
||||||
|
echo "$all"
|
||||||
|
ask_yesno "Etes-vous sûr de vouloir supprimer ces images?" || die
|
||||||
|
docker image rm "${images[@]}" || die
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
X|prune)
|
X|prune)
|
||||||
docker container prune -f || die
|
docker container prune -f || die
|
||||||
|
Loading…
Reference in New Issue
Block a user