【Docker】Unhealthyの原因を解説!メモリ不足かも!


DockerコンテナがUnhealthyになるんだけど、解消方法が分からないんだよね。。
再起動しても改善されない場合はどうすればいいのかな?
こんな疑問にお答えします。
- 本記事の内容
- 本記事の信頼性
本記事を書いている僕はエンジニア歴7年です。
Dockerは業務で何度も使用しているので、かなり有益な情報を発信できるかと思います。
結論、DockerコンテナのUnhealthyを解消する方法は主に二つです。
- Dockerコンテナをrestart(再起動)する
- メモリ不足の可能性があるので、メモリ割り当てを増やす



ちなみに、僕がエラーに遭遇した時はメモリ不足でした。。
⇨ WSL2でDockerを起動していたんですが、WSL2のメモリ割り当てが少なかったようです。


本記事を読んでいただければ、DockerコンテナがUnhealthyになる原因と解消方法についてしっかりと理解できるので早速見ていきましょう!



サクッと読み終わるので、ぜひ最後まで読んでみてください!
DockerコンテナがUnhealthyになる原因
DockerコンテナがUnhealthyになる原因は主に二つです。
- Dockerコンテナが何かしらの理由で停止している
- メモリが不足している
1. Dockerコンテナが何かしらの理由で停止している
Dockerコンテナが何かしらの理由で停止している可能性があります。



原因は様々ですが、唐突にコンテナが落ちることもあります。
まずは現状をしっかりと把握しましょう。
2. メモリが不足している
メモリ割り当てが不足している可能性があります。
メモリが不足している場合、コンテナを再起動しても改善されないことが多いです。
DockerコンテナのUnhealthyを解消する方法
DockerコンテナのUnhealthyを解消する方法は以下の通りです。
- Dockerコンテナをrestart(再起動)する
- メモリ割り当てを増やす
1. Dockerコンテナをrestart(再起動)する
まずはDockerコンテナを再起動してみましょう。
$ docker restart コンテナ名
↑のコマンドを実行してDockerコンテナを再起動します。
$ docker ps
Dockerコンテナのステータスを確認し、ステータスがUnhealthyからhealthyに変わっていればOKです。



ただし、healthyに変わった直後にUnhealthyに変わることもあります。
その場合はメモリの枯渇を疑いましょう。
2. メモリ割り当てを増やす
再起動してもUnhealthyが解消されない場合はメモリが枯渇している可能性が高いです。



DockerをWSL2(LinuxOS)で起動したりするとメモリ枯渇でコンテナが死ぬことがあります。
ちなみに、WSL2については「WSL2(Ubuntu)にDockerをインストールする方法!」で詳しく解説しています。


WSL2の場合
WSL2の場合は設定ファイルを設置するだけでOKです。
[wsl2]
memory=2GB
swap=8GB
.wslconfigファイルを新規作成します。
C:\Users\<ユーザ名>\に.wslconfigを配置します。
WSL2を再起動すればOKです。



念のため、PC自体の再起動も行いましょう。
Dockerコンテナを再起動してhealthyになればOKです。
よくある質問 | DockerコンテナがUnhealthyになる原因と解消方法
- DockerコンテナがUnhealthyになる原因は何ですか?
-
主に以下の二つです。
- Dockerコンテナが何かしらの理由で停止している
- メモリが不足している
- DockerコンテナのUnhealthyを解消する方法は何ですか?
-
主に以下の二つです。
- Dockerコンテナをrestart(再起動)する
- メモリ割り当てを増やす
まとめ | DockerコンテナがUnhealthyになる原因と解消方法
今回は、DockerコンテナがUnhealthyになる原因と解消方法について解説しました。
以下が本記事のまとめになります。
- DockerコンテナがUnhealthyになる場合は、とりあえずコンテナを再起動してみる。
- 再起動しても解消されない場合はメモリの枯渇を疑う。
この記事があなたのお役に立てば幸いです。
サイト内には、他にも初心者向けの記事を多く投稿していますので良ければ参考にしてみてください。
最後までお読みいただきありがとうございました!