MeWrite Docs

Docker: Layer not found

Dockerイメージのレイヤーが見つからない場合のエラー原因と解決策

概要

DockerイメージのビルドやPull時にレイヤーが見つからない場合に発生するエラーです。

エラーメッセージ

``` Error: layer not found pull access denied for myimage, repository does not exist or may require ‘docker login’ ```

原因

  1. キャッシュの破損: ローカルのレイヤーキャッシュが不整合
  2. レジストリからの削除: リモートでイメージが削除された
  3. 認証の問題: プライベートレジストリへの認証失敗
  4. ネットワークの問題: レジストリへの接続失敗

解決策

1. キャッシュをクリア

```bash

ビルドキャッシュをクリア

docker builder prune

未使用のイメージを削除

docker image prune -a

すべてをクリア(注意して使用)

docker system prune -a ```

2. キャッシュなしでビルド

```bash docker build –no-cache -t myimage . ```

3. レジストリに認証

```bash

Docker Hub

docker login

プライベートレジストリ

docker login registry.example.com

AWS ECR

aws ecr get-login-password –region ap-northeast-1 |
docker login –username AWS –password-stdin 123456789.dkr.ecr.ap-northeast-1.amazonaws.com ```

4. イメージを再Pull

```bash

最新を強制取得

docker pull myimage:latest –pull always

ベースイメージを更新

docker pull node:18-alpine docker build -t myimage . ```

5. マルチステージビルドの確認

```dockerfile

存在するベースイメージを使用

FROM node:18-alpine AS builder

FROM node:18-alpine AS runner

builder ステージからコピー

COPY –from=builder /app/dist ./dist ```

よくある間違い

  • :latest タグへの過度な依存
  • プライベートレジストリの認証切れ
  • 古いベースイメージの参照

関連エラー

関連エラー

Docker の他のエラー

最終更新: 2025-12-10