29
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Docker】プロセスの状態がExit1でコンテナ内へSSH接続ができない時に改善した方法

Last updated at Posted at 2019-05-17

はじめに

私がDockerで初めて作業した時につまずいた事象なので、共有させていただきます。
また、詳しい障害切り分けができていません。
初心者のため間違い等ございましたらアドバイス等よろしくお願いいたします。

Dcckerコンテナ内での作業をしようとすると

$ docker-compose up -d
$ docker-compose exec <サービス名> bash

本来であれば、上記のコマンドで正常にコンテナ内へSSH接続できて作業できるはず。
しかし、SSH接続が急に終わってしまい接続できない状況。
とりあえず、実行中のプロセスを確認することにしました。

$ docker-compose ps
        Name              Command            State          
----------------------------------------------------------
pompom_mysql_1       docker-entrypoint.sh      Up      
                     mysqld                                    
pompom_pompom_1      prehook bundle install    Exit 1      
                     -j3 ...                                                 
pompom_redis_1       docker-entrypoint.sh      Up      
                     redis ...                   

ん?本来Stateが「UP」になるところが「Exit 1」となっている!
どうやらこのサービスが上手く動いていないことが原因のようです。
より詳しい原因切り分けのため、
docker-compose logspompom_1に該当するエラーを探してみたが分からない状態に(汗
最終手段として、一度ボリュームを綺麗に掃除して立ち上げて見てみることに。

#コンテナのサービスを停止・イメージやボリュームを削除
$ docker-compose down
#不要ボリューム等の一括削除
#docker system pruneではボリュームまでは削除してくれない
$ docker system prune --volumes
#起動前にイメージを構築してから、コンテナを作成し起動する
$ docker-compose up --build         

しばらく構築処理が実行されるのを待ち、
再びSSH接続を試みると全て「UP」の状態になりました。

$ docker-compose ps
        Name              Command            State          
----------------------------------------------------------
pompom_mysql_1       docker-entrypoint.sh      Up      
                     mysqld                                    
pompom_pompom_1      prehook bundle install    Up      
                     -j3 ...                                                 
pompom_redis_1       docker-entrypoint.sh      Up      
                     redis ...                   

結論

今までできていたDockerの処理に不具合が発生した場合は、
docker-compose psdocker-compose logsで障害切り分けをしてみる。
私の場合、調べても障害の原因・切り分けができなかったため、
とりあえずという感覚で(本当はいけない行為だと思います)
最終手段としてボリュームを削除して再構築してみて、現象改善しました。
ボリュームの圧迫や何かの動作がキッカケでコケていたのだと考えます。
また、Dockerfile.dev等に修正点があるのかもしれません。
これからも、修正するべき点を探していきます。
同じような障害で作業が止まっている方の解決につながればと思います。

29
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?