0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

備忘録 Docker/Docker Composeにおける、クライアントエラー 404:Page Not Foundの対策 チートシート

0
Posted at

参考資料

まずやるべき重要なこと

404エラーの文言が「どこで見つからなかったか」を最初に確認することが、原因特定(名前・タグ・リポジトリのいずれか)の近道

1. タグの確認と修正

原因: レジストリに指定したタグが存在しない、またはタグ省略時に latest がないため。
対応: Docker Hubなどで実在するタグを確認し、Dockerfileやコマンド上で明示する。

# タグを明示してイメージを取得(latestを使わない)
docker pull <username>/<image_name>:<specific_tag>

2. 認証とアクセス権の確認

原因: 非公開リポジトリへのアクセス権がない、またはログインしていないため。
対応: docker login でログインし、アカウントに適切な権限があるか確認する。

# リポジトリへのアクセスが必要なレジストリにログイン
docker login <registry_url>
# 再試行
docker pull <username>/<image_name>:<tag>

3. リポジトリ名と綴りの確認

原因: リポジトリ名の誤り、または大文字混在(Dockerは小文字のみ許可)による無効な形式。
対応: レジストリのウェブ画面でリポジトリ名の実在と綴り(小文字のみ)を確認し、修正する。

# 正しいリポジトリ名(小文字)で実行
docker pull <lowercase_repository_name>:<tag>

4. コンテナ・イメージの存在確認

原因: コンテナが削除済み、またはローカルイメージが存在しないため。
対応: docker ps -adocker images で状態を確認し、必要に応じて再作成・再取得する。

# 削除されたコンテナがないか確認
docker ps -a
# ローカルのイメージ一覧を確認
docker images
# イメージがない場合は再取得
docker pull <username>/<image_name>:<tag>

5. レジストリ接続先の確認

原因: ポート番号の誤りなどで、通常のウェブサーバーに接続してしまいHTMLの404を返されている場合。
対応: 正しいレジストリURLとポート番号を確認し、接続先を修正する。

# 正しいレジストリを指定してログイン
docker login <correct_registry_url>:<port>

コンテナ名の確認(Docker Compose特有の注意点)

Docker Composeで起動したコンテナには、自動的に プロジェクト名_サービス名_連番 という形式の名前が付けられる
docker-compose.yml で定義した「サービス名」そのままでは docker ps などで見つからないことがある。

# Compose管理下のサービス名と、実際に稼働しているコンテナ名の対応を確認
docker compose ps

Docker Compose イメージとタグの確認

原因が「手元のデーモンにその名前の資源がない」場合、Composeファイルで指定したイメージがローカルに存在するか確認

# 手元のイメージの名前とタグを確認
docker images

Docker Hubなどで実在するタグを確認し、docker-compose.yml 上で明示的にタグを指定しているか再確認

Docker Compose 名前空間と認証の確認

push/pull時や、ビルド時に404やアクセス拒否が発生する場合、名前空間(library/ などの解釈)や認証状態が原因であることがある

確認・復旧コマンド

# レジストリへの認証状態を作り直す
docker login
# 完全な名前(レジストリ/名前空間/イメージ:タグ)で取得を再試行
docker pull docker.io/<ユーザー名>/<イメージ名>:<タグ>

docker login は成功しているのに denied: requested access to the resource is denied が出る場合、出力に library/ が含まれていないか、名前空間の解釈を確認

Docker Composeにおけるまとめ

Docker Composeを使用している場合でも、docker ps -a や docker images などの基本コマンドは有効
docker compose ps を使用してサービス名と実際のコンテナ名のマッピングを確認することが、障害対応(特に404エラー時の原因特定)において確実な近道

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?