Closed5

latestで取得したpostgresイメージのバージョンを確認する

not75743not75743

postgres:latestで取得してしまったためにバージョンが特定できない
調査する方法はあるか

not75743not75743

①docker inspectでそれっぽい情報を探す

docker inspectコマンドでコンテナイメージの詳細情報を取得出来ます。
https://docs.docker.com/engine/reference/commandline/inspect/

だいたい環境変数にバージョンの記載がされていそうなので、調べてみます。

$ docker image inspect --format '{{ json .Config.Env }}' postgres:latest | jq
[
  "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/15/bin",
  "GOSU_VERSION=1.16",
  "LANG=en_US.utf8",
  "PG_MAJOR=15",
  "PG_VERSION=15.3-1.pgdg120+1",
  "PGDATA=/var/lib/postgresql/data"
]

15.3-1と記載があります。確定ではないですがそれっぽいです

not75743not75743

②コンテナの中に入って調査する

これが確実でしょう。コンテナ立ててはいって確認すればよいです。

$ docker run --name some-postgres -e POSTGRES_PASSWORD=secretpassword -d postgres:latest
$ docker exec -it some-postgres psql -U postgres -c 'SELECT version();'
                                                       version                                                       
---------------------------------------------------------------------------------------------------------------------
 PostgreSQL 15.3 (Debian 15.3-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
(1 row)
not75743not75743

③DIGESTから検索する

inspectコマンドでイメージのDIGESTを取得できます。

$ docker inspect --format='{{index .RepoDigests 0}}' postgres:latest
postgres@sha256:362a63cb1e864195ea2bc29b5066bdb222bc9a4461bfaff2418f63a06e56bce0

このDIGESTと一致しているイメージをdockerhubから探し、ベースイメージなりパッケージを調査すればOKです。
大変だし、latestのイメージはちょくちょく更新されるので実用的ではないですね

このスクラップは2023/07/14にクローズされました