Docker

Dockerのbusyboxは永続コンテナと言いながらexport/saveコマンドでは持ち運びできないよ

More than 3 years have passed since last update.

このエントリーを見て永続コンテナを作ったのですが、

export/saveしても内容が空になってしまうんですよね。

http://qiita.com/mopemope/items/b05ff7f603a5ad74bf55

困った困った。

ということで、公式に情報がありました。

http://docs.docker.com/userguide/dockervolumes/#creating-and-mounting-a-data-volume-container

apacheで使用するソースコードのバックアップをしてみています。


永続コンテナのバックアップ(store)

docker run --rm \

--volumes-from www-data \
-v $(pwd):/backup \
busybox tar cvf /backup/www-data.tar /var/www/html


解説

docker run -rm \

--volumes-from {データが入っているコンテナの名前} \
-v $(pwd):/backup \
busybox tar cvf /backup/{保存するtarの名前}.tar {マウントしているディレクトリ}


永続コンテナのリストア(restore)

まずは空のコンテナを作る

docker run --name www-data \

-v /var/www/html busybox true

tarをリストアする

docker run --rm --volumes-from www-data \

-v $(pwd):/backup \
busybox tar xvf /backup/www-data.tar


解説

docker run --rm --volumes-from {リストア先のコンテナの名前} \

-v $(pwd):/backup \
busybox tar xvf /backup/{保存してあるtarの名前}.tar

--rmはコンテナが終了した瞬間に消す、というoptionらしい。