2017/06/13

Volume 指定を忘れた Docker からデータを取り出す

Jenkinsをたてた時、最初はボリュームを指定せずに docker run していました。
後からポートフォワードを追加しようと思って、一旦イメージを commit 。
そのイメージにオプションを追加して起動しても Jenkins が初期化されている。

どうやらボリュームを指定していないとどこかにボリュームを勝手に作るらしい。
なので今まで作業していた分を commit してもコンテナに反映されない。
ということでどこかに作られたボリュームを探せればデータを復旧できそう。

  • docker inspect <container-name>
するといろいろ出てくるがその中に怪しいものが。
Mounts の Source にパスがあるのでこいつっぽい。

  • cp -r /var/lib/docker/volumes/98ef888300af713d65b6d7534d835c7bd2e95270ad5eb016da749bbbb5f6d409/_data hoge
  • docker run -itd -P -v /foo/bar/hoge:/var/jenkins_home jenkins
とかすると復活。やったね。

環境

  • CentOS Linux release 7.0.1406 (Core) 
  • Docker version 1.12.6, build 1398f24/1.12.6

0 件のコメント:

コメントを投稿