LoginSignup
2
0

More than 5 years have passed since last update.

起動できないコンテナからデータレスキュー

Posted at

事象

kubernetes環境でnode1(Minionサーバ)がハード障害により再起動。
node1復旧後にコンテナ自体は再作成されましたが、その中にデータを永続化していないコンテナがあったため、DBが空になってしまった:fearful:

復旧に向けて

node1につなぎ以下を試みる。

コマンド 結果
docker start <コンテナ名> 起動せず
docker commit <コンテナ名> <イメージ名> DBデータのないイメージが作成された
docker inspect <コンテナID> コンテナ詳細情報...の中にDBデータへのパスが!
[root@hogehoge ~]# docker inspect 3f1ec342f66f
(省略)
"Mounts": [
        {
            "Name": "7e9049ff56d67dd8220977b683792969351a624c0df847af722b5e442aee6691",
            "Source": "/var/lib/docker/volumes/7e9049ff56d67dd8220977b683792969351a624c0df847af722b5e442aee6691/_data",
            "Destination": "/var/lib/mysql",
            "Driver": "local",
            "Mode": "",
            "RW": true
        },
(省略)

この情報でホスト側からデータを取得することができ、データをロストせずに済みました:sweat_smile:
コンテナにもよると思いますが、マウント設定していなくともデフォルトでされているのですね・・・感謝。
逆にマウント設定されていないコンテナの場合はdocker commitでデータもイメージに取り込まれるのかも知れません。

後で気づいた

テンパってて試さなかったけど、docker cpでディレクトリごとコピーもできるみたい。

2
0
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
2
0