症状
docker exec コマンド実行時に Error: No such container: コンテナ名 が表示される。
結論:まずこれを確認
docker ps -aでコンテナの存在と状態を確認する- コンテナ名・IDのタイプミスがないか確認する
- コンテナが
Exited状態ならdocker startで起動する
トラブルシューティングフロー
flowchart TD
A[No such container エラー] --> B{docker ps -a で<br>コンテナが表示される?}
B -->|No| C[コンテナが存在しない]
B -->|Yes| D{STATUSは<br>Up?}
C --> C1[コンテナ名/IDを再確認]
C1 --> C2[docker run で作成が必要]
D -->|No| E[コンテナが停止中]
D -->|Yes| F{コンテナ名/IDは<br>正確?}
E --> E1[docker start で起動]
F -->|No| G[名前/IDを修正して再実行]
F -->|Yes| H[Docker デーモン再起動を検討]
よくある原因
- コンテナ名・IDのタイプミス - 大文字小文字、ハイフン、アンダースコアの違い
- コンテナが停止している -
Exited状態のコンテナには exec できない - コンテナが削除されている -
docker rmや--rmオプションで削除済み - 別の Docker コンテキストを参照 - Docker Desktop と CLI で異なる環境を見ている
- コンテナ名の重複回避で別名になっている -
docker-composeが自動でサフィックスを付与 - docker-compose のプロジェクト名が異なる - ディレクトリ名がプレフィックスになる
確認手順
ステップ1: 全コンテナの一覧を確認する
docker ps -a
🔍 チェックポイント: 対象のコンテナが一覧に表示されるか確認する。表示されなければコンテナは存在しない。
ステップ2: コンテナの状態を確認する
docker ps -a --filter "name=対象のコンテナ名"
🔍 チェックポイント: STATUS 列が Up で始まっていれば起動中。Exited なら停止中。
ステップ3: 停止中のコンテナを起動する
docker start コンテナ名またはID
🔍 チェックポイント: エラーなく完了すれば、再度 docker exec を実行できる。
ステップ4: コンテナ名を正確に取得する
docker ps -a --format "{{.Names}}"
🔍 チェックポイント: 出力された名前をコピーして docker exec に使用する。
ステップ5: コンテナIDで実行する
# コンテナIDの先頭数文字でも指定可能
docker exec -it abc123 /bin/bash
🔍 チェックポイント: コンテナ名ではなくIDで指定すると、名前の問題を切り分けられる。
ステップ6: docker-compose 環境の場合
# docker-compose が付与した名前を確認
docker-compose ps
# docker-compose 経由で exec する
docker-compose exec サービス名 /bin/bash
🔍 チェックポイント: docker-compose exec はサービス名(コンテナ名ではない)を指定する。
NG行動(やってはいけないこと)
- 停止中のコンテナに exec を繰り返す - 状態を確認せず同じコマンドを連打しても解決しない
- コンテナ名を目視で入力する - コピー&ペーストで正確な名前を使用する
docker rm -fで削除して作り直す - データボリュームがない場合、データが消失する- sudo なしで実行してエラーを無視する - 権限不足の場合は別のエラーメッセージになる
よくある質問(FAQ)
Q1: コンテナIDの一部だけで指定できる?
A: 可能。他のコンテナと区別できる長さがあれば、先頭3〜4文字程度で指定できる。docker exec -it abc /bin/bash のように使用する。
Q2: docker-compose up したのにコンテナが見つからない
A: docker-compose ps でサービス名とコンテナ名を確認する。コンテナ名は ディレクトリ名_サービス名_1 の形式になることが多い。docker-compose exec サービス名 コマンド を使用するとサービス名で指定できる。
Q3: –rm オプションで起動したコンテナはどうなる?
A: --rm オプション付きで起動したコンテナは、停止時に自動削除される。docker ps -a にも表示されない。再度 docker run で起動が必要。
関連するエラー・症状
- (関連記事準備中)
- (関連記事準備中)
- (関連記事準備中)
解決しない場合
公式ドキュメント
確認すべきログ
# Docker デーモンのログ(Linux)
journalctl -u docker.service
# Docker Desktop のログ(macOS/Windows)
# Docker Desktop の Troubleshoot > Get support から確認
次に調べるキーワード
docker container inspectdocker logs コンテナ名docker events