このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:よくあるエラーと解決策①|イメージ名やYAML構文エラー

よくあるエラーと解決策①|イメージ名やYAML構文エラー
Dockerを使っていると、ちょっとしたミスで「えっ、なんで動かないの!?」ということ、ありますよね。
今回はそんな“あるある”なエラーの中から、「イメージ名の間違い」や「YAMLファイルの書き方ミス」を取り上げて、原因と解決方法をやさしく解説していきます。
作業前のクリーンアップ
まずは作業を始める前に、Dockerの中をきれいにしておきましょう。
古いコンテナや使っていないイメージが残っていると、意図しない動作の原因になることがあります。
実行中のコンテナがあれば、先に全部停止しておきましょう。
そのあと、以下のコマンドを実行します👇
docker system prune -a --volumesこのコマンドはDockerの中を「大掃除」してくれるコマンドです。
ちょっと強力なので、実行する前に削除してもいいものだけが残っているか確認してくださいね。
| オプション | 説明 |
|---|---|
| -a | 使われていないすべてのイメージを削除します。 |
| --volumes | 未使用のボリュームも一緒に削除します。 |
実行結果
PS C:\Users\joeac> docker system prune -a --volumes
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all anonymous volumes not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N] yもしコマンド操作が苦手な方は、Docker Desktopを使うのがおすすめです。
マウスで削除できるので、視覚的に確認しながら安全にクリーンアップできますよ。
作業フォルダの準備
次に、作業用のフォルダを作っておきましょう。
PowerShellで以下のコマンドを順に実行します。
cd desktop/docker
mkdir error1
cd error1これで、デスクトップ上に「docker」→「error1」というフォルダができました。
この中にDockerの設定ファイル(compose.yaml)を置いて作業していきます。
実行結果
PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir error1
Directory: C:\Users\joeac\Desktop\docker
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2025/10/25 1:27 error1
PS C:\Users\joeac\Desktop\docker> cd error1
PS C:\Users\joeac\Desktop\docker\error1>compose.yamlファイルを作る
VSCodeを起動して、次のコマンドを実行します。
code compose.yamlこれでVSCodeが開いたら、以下の内容を入力して保存します。
services:
apache:
image: apache:latest
ports:
- "80:80"
volumes:
- ./:/usr/local/apache2/htdocs/この中に、実は一つ「罠」があります。
イメージ名「apache:latest」は存在しないんです。
正しいイメージ名は httpd です。
エラー①:イメージ名を間違えた場合
試しにそのまま起動してみましょう。
docker compose up -dすると、こんなエラーメッセージが出てきます👇
✘ apache Error pull access denied for apache, repository ... 1.7s
Error response from daemon: pull access denied for apache, repository does not exist or may require 'docker login'
「apache」という名前のイメージがDocker Hubに存在しないため、アクセスが拒否されたという意味です。
✅ 解決策
イメージ名を正しい「httpd:latest」に直しましょう!
services:
apache:
image: httpd:latest
ports:
- "80:80"
volumes:
- ./:/usr/local/apache2/htdocs/修正できたらもう一度起動します。
docker compose up -dこれでOKです!
コンテナを停止しておきます。
docker compose stopエラー②:インデントの間違い
次によくあるのが「インデント」のミス。
YAMLではスペースの数がとっても大事なんです。
たとえば、次のように書いてしまうと…
services:
apache:
image: httpd:latest
ports:
- "80:80"
volumes:
- ./:/usr/local/apache2/htdocs/ports: の前にスペースが1つ多いですね。
これを実行すると次のようなエラーになります。
docker compose up -dyaml: line 4: mapping values are not allowed in this context
意味は「この位置で値の対応関係(キー:値)は書けませんよ」という感じです。
つまり、インデントがズレてYAMLの構造が壊れているということです。
✅ 解決策
VSCodeを使えば、インデントミスは赤い波線で教えてくれるので気づきやすいです。
正しくは以下のように整えます。
services:
apache:
image: httpd:latest
ports:
- "80:80"
volumes:
- ./:/usr/local/apache2/htdocs/エラー③:リスト形式の書き方ミス
YAMLで「リスト」を書くときは、ハイフン(-)を忘れずに!
たとえば、次のように書くとエラーになります。
services:
apache:
image: httpd:latest
ports: "80:80"
volumes:
- ./:/usr/local/apache2/htdocs/実行してみます。
docker compose up -dエラーメッセージはこうなります。
services.apache.ports must be a list
つまり、「portsはリストで指定しなきゃダメですよ」という意味ですね。
✅ 正しい書き方
services:
apache:
image: httpd:latest
ports:
- "80:80"
volumes:
- ./:/usr/local/apache2/htdocs/修正後、もう一度以下のコマンドを実行してみましょう。
docker compose up -d| コマンド | 説明 |
|---|---|
| docker compose up | compose.yamlに書かれたサービスを起動します。 |
| -d | バックグラウンドで動かすオプションです。 |
出力結果がこのようになれば成功です✨
PS C:\Users\joeac\Desktop\docker\error1> docker compose up -d
[+] Running 1/1
✔ Container error1-apache-1 Started ブラウザで確認!
最後に、ブラウザで localhost にアクセスしてみましょう。

このように表示されたら成功です!🎉
まとめ
今回は「イメージ名の間違い」や「YAML構文ミス」によるエラーを見てきました。
ポイントはこの3つです👇
- イメージ名はDocker Hubで確認する。(例:
httpd) - YAMLのインデントはそろえる。
- リスト形式(-)を忘れない。
慣れてくるとエラーメッセージを見ただけで「どこを直せばいいか」が分かるようになりますよ😊
