質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

12683閲覧

AWS EC2上のDockerが一切のコマンドに応答しなくなった際の対応について

medulla

総合スコア15

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

1クリップ

投稿2017/04/05 09:52

教えていただきたいこと

AWS EC2コンテナを再起動後、Dockerコマンドを打ってみると、どんなDockerコマンドを打っても応答が無くCtrl+C でコマンドを停止するしか方法が無い、という状態に陥りました。
自分なりに調べて対処したところ結果的には復旧したのですが、

  • 復旧方法は妥当であるのか
  • Dockerコマンドはなぜ応答が無かったのか(つまり、実際にDockerがどのような状態に陥っていたのか)

など、詳しいところがわかっていません。
どなたかお分かりになりましたら教えていただけないでしょうか。

環境

ホスト:AWS EC2 Amazon Linux
Docker:version 1.12.6, build 7392c3b/1.12.6

経緯

  • Dockerコンテナを構築し、3ヶ月程度、普通に使用できていました。
  • ある日、突然EC2インスタンスに接続できなくなった(SSHも含め)ため、一旦AWSのコンソールからEC2インスタンスを停止し、再度起動しました。
  • 再起動後インスタンスにSSH接続してDockerコンテナを起動しようとしたところ、Dockerコマンドを投入すると一切応答が返ってこない状態になってしまいました。

不具合の状況

以下のように、一切のDockerコマンドが応答なしの状態になりました。

$ docker ps -a ^C (数分放置するも応答なしのためCtrl+Cで終了) $ $ docker images ^C (数分放置するも応答なしのためCtrl+Cで終了) $ $ docker version ^C (数分放置するも応答なしのためCtrl+Cで終了) $ $ docker -v Docker version 1.12.6, build 7392c3b/1.12.6 (これだけ応答あり) $

Dockerのサービスは立ち上がっている状態でした。

$ service docker status docker (pid 2629) を実行中...

Dockerサービスを再起動しても状況は変わりませんでした。

$ service docker restart docker を停止中: [ OK ] Starting docker: . [ OK ] $ $ docker images ^C (数分放置するも応答なしのためCtrl+Cで終了) $

調査した内容

ログ /var/log/docker の内容を調べました。

$ tail -n 100 /var/log/docker time="2017-03-24T11:00:54.098331916Z" level=error msg="failed to close stdin: rpc error: code = 2 desc = containerd: process not found for container" time="2017-03-24T11:02:12.614045610Z" level=error msg="failed to close stdin: rpc error: code = 2 desc = containerd: process not found for container" time="2017-03-24T23:24:27.453178300Z" level=info msg="Processing signal 'terminated'" time="2017-03-24T23:24:28.136177486Z" level=info msg="stopping containerd after receiving terminated" \n2017年 3月 27日 月曜日 02:09:35 UTC\n time="2017-03-27T02:09:35.874130943Z" level=info msg="libcontainerd: new containerd process, pid: 2610" time="2017-03-27T02:09:37.019615575Z" level=warning msg="devmapper: Usage of loopback devices is strongly discouraged for production use. Please use `--storage-opt dm.thinpooldev` or use `man docker` to refer to dm.thinpooldev section." time="2017-03-27T02:09:37.031127386Z" level=warning msg="devmapper: Base device already exists and has filesystem xfs on it. User specified filesystem will be ignored." time="2017-03-27T02:09:37.038844834Z" level=info msg="[graphdriver] using prior storage driver \"devicemapper\"" time="2017-03-27T02:09:37.331504417Z" level=info msg="Graph migration to content-addressability took 0.00 seconds" time="2017-03-27T02:09:37.331648393Z" level=warning msg="Your kernel does not support cgroup blkio weight" time="2017-03-27T02:09:37.331662973Z" level=warning msg="Your kernel does not support cgroup blkio weight_device" time="2017-03-27T02:09:37.331724265Z" level=warning msg="mountpoint for pids not found" time="2017-03-27T02:09:37.332471803Z" level=info msg="Loading containers: start." ......time="2017-03-27T02:09:37.407747301Z" level=info msg="Firewalld running: false" time="2017-03-27T02:09:37.622272454Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address" time="2017-03-27T02:09:37.655519910Z" level=info msg="Loading containers: done." time="2017-03-27T02:09:37.656020316Z" level=info msg="Daemon has completed initialization" time="2017-03-27T02:09:37.656038467Z" level=info msg="Docker daemon" commit="7392c3b/1.12.6" graphdriver=devicemapper version=1.12.6 time="2017-03-27T02:09:37.662848540Z" level=info msg="API listen on /var/run/docker.sock" time="2017-03-30T02:20:15.941151713Z" level=error msg="failed to close stdin: rpc error: code = 2 desc = containerd: process not found for container" time="2017-03-30T02:20:34.224552581Z" level=error msg="failed to close stdin: rpc error: code = 2 desc = containerd: process not found for container" time="2017-03-31T02:39:52.784894695Z" level=error msg="failed to close stdin: rpc error: code = 2 desc = containerd: process not found for container" \n2017年 4月 1日 土曜日 03:32:01 UTC\n time="2017-04-01T03:32:01.982951860Z" level=info msg="libcontainerd: new containerd process, pid: 2751" time="2017-04-01T03:32:02.12522996Z" level=fatal msg="open /var/run/docker/libcontainerd/containerd/319a873d69e28c25abfc544f231244746c1bc91f45f6bc0a48bbd128dc02a503/state.json: no such file or directory" time="2017-04-01T03:32:08.007545887Z" level=info msg="libcontainerd: new containerd process, pid: 2812" time="2017-04-01T03:32:08.014041879Z" level=fatal msg="open /var/run/docker/libcontainerd/containerd/319a873d69e28c25abfc544f231244746c1bc91f45f6bc0a48bbd128dc02a503/state.json: no such file or directory" (省略) \n2017年 4月 1日 土曜日 22:34:44 UTC\n time="2017-04-01T22:34:44.540145627Z" level=info msg="libcontainerd: new containerd process, pid: 16598" time="2017-04-01T22:34:44.593492918Z" level=fatal msg="open /var/run/docker/libcontainerd/containerd/319a873d69e28c25abfc544f231244746c1bc91f45f6bc0a48bbd128dc02a503/state.json: no such file or directory" time="2017-04-01T22:34:50.560634847Z" level=info msg="libcontainerd: new containerd process, pid: 21735" time="2017-04-01T22:34:50.573067625Z" level=fatal msg="open /var/run/docker/libcontainerd/containerd/319a873d69e28c25abfc544f231244746c1bc91f45f6bc0a48bbd128dc02a503/state.json: no such file or directory" $

最後のエラーメッセージにありますように、/var/run/docker/libcontainerd/containerd/{container id} 以下にstate.jsonは確かに存在していませんでした。

行った対処

思い切って、/var/run/docker/libcontainerd/containerd/{container id} をディレクトリごと削除しました。

$ rm -rf /var/run/docker/libcontainerd/containerd/{container id}

上記ディレクトリを削除後、Dockerのサービスを再起動しました。

$ service docker restart docker を停止中: [ OK ] Starting docker: . [ OK ] $

Dockerコマンドを打つと、正常に応答するようになりました。

$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE postgres latest 4023a747a01a 10 weeks ago 264.8 MB php 5.6-apache 500c82490ae6 3 months ago 370.8 MB (省略) $

以上になります。長くなりまして恐縮です。なぜDockerコマンドが応答無しになっていたのか、対処方法は正しかったのか、等、教えていただけると助かります。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

既に解決されているかもしれませんが、このバージョン前後では、 /var/lib/docker/ 以下を削除すると再度実行できるようになった、との GitHub 上の報告を頻繁にみたことがあります。

何らかのバグに遭遇したのかもしれません。今後もしまた問題が発生するようであれば、最新の安定版を利用しているかどうかを確認されることをお勧めいたします。

投稿2019/04/27 11:49

zembutsu

総合スコア1584

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

medulla

2019/05/04 09:16

このバージョンのDockerの問題の可能性が高い、ということですね。これ以降はこのような問題には遭遇していませんが、最新版を使うようにしようと思います。情報をご提供いただき、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問