Dockerイメージを一括でタグごとに最新にアップデートする

タグごとに、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

参考

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です