Dockerのコンテナが起動しない時に見るページ
Dockerfileを作ったけどコンテナが起動しない
公式イメージをダウンロードして利用するのに慣れた頃、Dockerfileにチャレンジしました。
簡単なことをするだけならすぐできましたが、それ以上のことしようとコンテナが起動せずうまくいきませんでした。
その時に調べたことを汎用的にまとめて記事にします。
OSはAmazon Linuxを使ってました。
この記事を書いた人
@takasqr アプリケーション開発が大好きなエンジニア。Vue、Swift、Electrom などでアプリを作って公開している。AWS や Firebase などのクラウドサービスも好き。
やること
1. エラーコードを確認してネットで検索
docker ps -a
を実行してSTATUSの欄が、
Up 7 hours
ではなく、
Exited (0)
みたいな感じだった場合はエラー番号等で検索してみると原因がわかる可能性があります。
ただ、エラーコードはかなり大雑把なので原因が特定できない場合も多くあります。
2. ログを確認する
ログの出力先を変更してない場合は
docker logs [container_name]
で、ログを出力することができます。
出力先を設定している場合は出力先でログを確認します。
3. 起動できなかったコンテナに入る
コンテナをコミットする。commitコマンドを使うことで、コンテナをイメージに変換することができます。
sudo docker commit -m "exited" xxxxxxxxxxxx
コミットしたイメージに入る。
sudo docker run --rm -it xxxxxxxxxxxx bash
コンテナ作成時に実行されるCMDを実行してみると、なぜ起動しなかったかわかるかもしれません。
docker ps -a --no-trunc
を実行するとCOMMAND等が省略されずに表示されるので、そのコマンドを実行することでなぜ起動しなかったのかエラーメッセージを確認することができます。
さいごに
原因特定する際に役立てば幸いです。