ブラックボックス

プログラミングのノウハウやライフハックをどんどん投稿していきたい

Sep 8, 2018 - 1 minute read - ノウハウ

【Docker】コンテナが起動できない時の確認手順

完全に自分用メモ。
起動が出来ない原因をログを見て突き止めたいので、起動が失敗したコンテナに入るための手順。

参考:Dockerイメージのビルド中にExitedしたコンテナに入る方法

まずは起動できないコンテナを確認する。

$ docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED              STATUS                          PORTS                NAMES
c869cffde8c2        docker-compose_mysql   "docker-entrypoint.s…"   About a minute ago   Exited (1) About a minute ago                        mysql

今回、docker-compose up -dを行ったものの起動が出来ていない状態。
対象は、ステータスが Exited (1) About a minute ago となっているコンテナID:c869cffde8c2。
当然、この状態ではコンテナに入ることは出来ない。

まずは、起動が出来なかったコンテナを一旦イメージ化する。

$ docker commit c869cffde8c2 mysql-ex
sha256:45fe024bee2bd017e4a2d93c1f9e929f8c6e2bc40b6e66ae1255965b27bb6935

上記コマンドで、コンテナID:c869cffde8c2 を、 mysql-ex という名前のイメージにしている。

イメージの一覧を確認。

$ docker image list
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
mysql-ex               latest              45fe024bee2b        4 seconds ago       372MB

mysql-ex というイメージが作られている。

イメージを実行し入る。

$ docker run --rm -it mysql-ex bash
root@555ad68f9d75:/#

これでひとまず入ることが出来た。
入れたので、この後はイメージ内のログを見て起動が出来なかった原因を突き止めることとなる。