この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:5
ページ更新者:atom
更新日時:2026-06-11 07:10:02

タイトル: エラー一覧
SEOタイトル: Docker よくあるエラー集と対処完全ガイド

この記事の要点
  • Cannot connect to Docker daemon — Docker Desktop / dockerd 未起動、または docker グループ未追加
  • permission denied while trying to connect to docker.socksudo usermod -aG docker $USER で解決
  • port is already allocated — 既存コンテナ or プロセスがポート占有、docker ps + lsof -i :PORT
  • no space left on devicedocker system prune -af --volumes で開放
  • toomanyrequests: pull rate limit — Docker Hub 匿名 100 pull/6h、ログインで 200 pull、Pro で無制限
  • container exited with code 137 — OOM Killer。--memory 制限増 or アプリ最適化

Docker でよく遭遇するエラー一覧

Docker は数百種類のエラーメッセージがありますが、本番開発で頻出するのは 10〜15 種類程度。本記事では原因と対処をまとめます。

1. Cannot connect to the Docker daemon

Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
Is the docker daemon running?

原因:

  • Docker Desktop / dockerd サービスが起動していない
  • ユーザーが docker グループに入っていない
  • WSL 環境で Docker Desktop の WSL 統合が無効
# Linux: サービス起動確認
sudo systemctl status docker
sudo systemctl start docker
sudo systemctl enable docker

# docker グループに追加 (要ログアウト)
sudo usermod -aG docker $USER
newgrp docker

# Docker Desktop (Mac/Win): アプリを起動
# WSL: 設定 → Resources → WSL integration を ON

2. permission denied while trying to connect to docker.sock

Got permission denied while trying to connect to the Docker daemon socket
at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version":
dial unix /var/run/docker.sock: connect: permission denied
# 上記 1. と同じく docker グループへ
sudo usermod -aG docker $USER
newgrp docker

# 一時しのぎ (毎回 sudo)
sudo docker ps

# socket の権限確認
ls -la /var/run/docker.sock
# srw-rw---- 1 root docker 0 May 10 docker.sock

3. Bind for 0.0.0.0:XXXX failed: port is already allocated

# どのコンテナがポートを使っているか
docker ps --format "table {{.Names}}\t{{.Ports}}"

# 該当コンテナ停止
docker stop mycontainer

# ホストプロセスが使っている場合
sudo lsof -i :3306
sudo ss -tnlp | grep 3306

# Docker Desktop で全部止める
docker stop $(docker ps -q)

# compose 起動時に発生したら docker compose down してから up
docker compose down
docker compose up -d

4. no space left on device

Docker は使い終わったイメージ / ボリューム / ビルドキャッシュをため込むので、定期的に掃除が必要です。

# 使用状況確認
docker system df
# TYPE          TOTAL  ACTIVE  SIZE     RECLAIMABLE
# Images        45     8       12.5GB   9.2GB (73%)
# Containers    8      2       890MB    640MB (71%)
# Local Volumes 23     5       4.2GB    3.1GB (73%)
# Build Cache   120    0       8.7GB    8.7GB (100%)

# 一括掃除 (確認付き)
docker system prune

# 全部消す (ボリュームも) ★ データ消失注意
docker system prune -af --volumes

# 個別
docker image prune -af
docker container prune -f
docker volume prune -f
docker builder prune -af

# Docker Desktop ディスク上限拡張
# 設定 → Resources → Advanced → Disk image size

5. toomanyrequests: You have reached your pull rate limit

Docker Hub の匿名ユーザーは 6 時間で 100 pull、認証付きで 200 pull、Pro / Team で無制限。CI 環境で頻発します。

# Docker Hub にログイン
docker login -u myusername

# CI なら secrets でログイン
# GitHub Actions
- uses: docker/login-action@v3
  with:
    username: ${{ secrets.DOCKERHUB_USERNAME }}
    password: ${{ secrets.DOCKERHUB_TOKEN }}

# 代替: GHCR / ECR Public / quay.io
docker pull ghcr.io/owner/image:tag
docker pull public.ecr.aws/...

# プロキシレジストリでキャッシュ (Harbor, Nexus)

6. network XXX not found

# ネットワーク一覧
docker network ls

# 不在なら作成
docker network create mynet

# compose ファイル内で外部ネットワーク参照していたら
networks:
  default:
    external: true
    name: mynet

7. Container exited with code (0 / 1 / 137 / 139)

Exit Code意味対処
0正常終了。長寿命プロセスではないCMD が即終了するスクリプト。常駐コマンドに変更
1一般エラーdocker logs で詳細確認
125Docker daemon エラー引数ミス、image 不在
126コマンドが実行不可 (パーミッション)chmod +x
127コマンドが見つからないPATH / 入れ忘れ
137OOM Killer により SIGKILL--memory 増やす or 最適化
139SIGSEGV (セグフォルト)ネイティブコードのバグ
143SIGTERM (正常停止)意図通り

8. Build context is too large

# 原因: .git や node_modules を全部送信している
# .dockerignore を作る
cat > .dockerignore <<EOF
.git
node_modules
*.log
.env
dist
coverage
EOF

# BuildKit で並列ビルド (高速)
DOCKER_BUILDKIT=1 docker build -t myapp .

9. Docker Desktop が起動しない (Windows)

  • BIOS で仮想化 (VT-x / AMD-V) を有効化
  • WSL2 を更新: wsl --update
  • Hyper-V とサードパーティ仮想化の競合 (VirtualBox 6.0 以下と非互換)
  • %LOCALAPPDATA%\Docker を削除して再インストール (設定リセット)

10. compose down -v で全部消したい

# 停止 + コンテナ + ネットワーク削除
docker compose down

# ★ ボリュームも消す (DB データ消失注意)
docker compose down -v

# orphan コンテナも
docker compose down --remove-orphans

# 全部リセットして再構築
docker compose down -v --remove-orphans
docker compose build --no-cache
docker compose up -d

デバッグ三種の神器

# ログを見る (-f で追従)
docker logs -f --tail=200 mycontainer

# シェル接続 (alpine なら sh)
docker exec -it mycontainer bash

# 停止コンテナにも入る (commit して run)
docker commit mycontainer debugimg
docker run -it --rm debugimg sh

# プロセス・リソース確認
docker top mycontainer
docker stats
docker inspect mycontainer | jq '.[0].State'

FAQ

Q: Docker Desktop が遅い (Mac)
A: VirtioFS を有効化 (設定 → General)、Rosetta 利用 (Apple Silicon)、ファイル共有最小化、メモリ割当を 4GB → 8GB へ。

Q: イメージサイズを減らしたい
A: マルチステージビルド、FROM alpinedistroless 利用、--no-cache でパッケージマネージャを使う。

Q: コンテナが起動と同時に終了する
A: Foreground プロセスが必要。CMD ["nginx", "-g", "daemon off;"] のように常駐モードで起動。