タグごとに、pullしているDockerイメージを最新にアップデートします。
使用ユーザーはdocker
グループに入っている前提なので、入っていない場合はdocker
コマンドの前にsudo
を付けてください。
$ docker images --format "{{.Repository}}:{{.Tag}}" | sed "/<none>$/d" | xargs -P0 -L1 docker pull
ググって見つかったワンライナーでも一括更新できたのですが、私の環境だとlatest
は要らなかったのでタグごとにpull
するワンライナーを作りました。
一括で全部のイメージを更新したいけど、latest
は別に要らないんだよなって人向けです。
解説
ざっくり解説します。
docker images --format "{{.Repository}}:{{.Tag}}"
Dockerイメージの一覧をイメージ名:タグ名
の形式で出力します。sed "/<none>$/d"
タグが<none>
のイメージ(いわゆる宙ぶらりんイメージ)を出力から取り除きます。
このコマンドは無くても後続のdocker pull
がエラーで弾くので、不要と言えば不要です。xargs -P0 -L1 docker pull
それぞれのイメージをpull
します。
検証環境
今回、検証した環境です。
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
$ docker -v
Docker version 20.10.12, build e91ed57
$ docker-compose -v
docker-compose version 1.29.2, build 5becea4c