はじめに

たまたま、nginxの脆弱性の記事を見つけた。

Docker Composeでnginxを動かしているのだが、導入時からnginxをアップデートした記憶がない。

アップデート手順を備忘録として残す。

バージョン確認

まず、compose.yml内でのイメージのタグを確認する。

services:
  <nginxのサービス名>:
    image: nginx:stable

タグがstableで今のイメージのバージョンが分からないので、dockerコンテナ内のnginxでバージョンを確認する。

docker compose exec <nginxのサービス名> nginx -v
nginx version: nginx/1.30.2

今のstableの最新は1.30.3なので、イメージを更新する。

nginxイメージを更新する

Dockerイメージを更新するには、まず新しいイメージを取得する。

stableタグの最新を取得。

docker compose pull <nginxのサービス名>

コンテナを作り直す。

docker compose up -d

更新後のバージョンを確認する

docker compose exec <nginxのサービス名> nginx -v
nginx version: nginx/1.30.3

バージョンが1.30.3になっているので、更新された。

ついでに

現在、レスポンスヘッダのserverにnginxのバージョンが入るようになっている。

nginxのconfに以下を追記して、表示させないようにする。

server_tokens off;

構文確認して、nginxをリロードする。

docker compose exec <nginxのサービス名> nginx -t
docker compose exec <nginxのサービス名> nginx -s reload

これで、レスポンスヘッダからバージョンが消えた。