t8.dev

🇺🇸

Dockerのコンテナが起動しない時に見るページ

公開日:2019/06/05
更新日:2021/08/15

Dockerfileを作ったけどコンテナが起動しない

心理学を使ったTODOアプリを開発している、@takasqrです。

心理学を使ったTODOアプリ | todo8

心理学を使ったTODOアプリ | todo8

公式イメージをダウンロードして利用するのに慣れた頃、Dockerfileにチャレンジしました。

簡単なことをするだけならすぐできましたが、それ以上のことしようとコンテナが起動せずうまくいきませんでした。

その時に調べたことを汎用的にまとめて記事にします。

OSはAmazon Linuxを使ってました。

やること

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等が省略されずに表示されるので、そのコマンドを実行することでなぜ起動しなかったのかエラーメッセージを確認することができます。

さいごに

原因特定する際に役立てば幸いです。

関連記事

DockerfileのCOPYでファイルやディレクトリごとコンテナにコピーする
Dockerのcpでホストとコンテナ間でのファイルコピー
dockerfileのenvを使って環境変数を渡す【ARGとの違いも説明する】
【dockerfile】echoを使ってテキストファイルに複数行追記する
WordPress用のmysql(5.7)をdockerfileで作る
Postgres SQLのdockerfileを作る
sqlserverのdockerfileを作る
Docker execでコンテナ外からコマンドを実行する
Dockerのイメージ一覧をコマンドで表示する【images】
DockerのpsでCOMMANDを省略しないで表示する
Dockerで不要になったimageやcontainerを一括削除【system prune】

オススメ記事

5年間ほぼ毎日プログラミングの勉強をするためにやったこと
論文と本から学ぶ、プログラミング独学のコツ
目標達成率を高める if thenプランニングとは!?【本とアプリも紹介】