Skip to content

Instantly share code, notes, and snippets.

@ikapper
Created April 8, 2020 05:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ikapper/b3460703867188581893730848520ad5 to your computer and use it in GitHub Desktop.
Save ikapper/b3460703867188581893730848520ad5 to your computer and use it in GitHub Desktop.
#!/bin/bash
###########################
#
# 注意: このスクリプトが存在するフォルダから実行することを前提としている。
#
# pwdの場所に
# ハードコードされたdocker環境(docker-machineのdefault)の
# docker volumeのバックアップを取る。
#
###########################
# docker volume ls | awk 'NR>1 {print "VOLUME_LIST+=(\"" $2 "\")"}' | pbcopy
# 上のコマンドでコピペできる。
VOLUME_LIST=(...)
echo virtualbox上のDocker環境をセットアップ...
eval $(docker-machine env)
if [ $? -eq 0 ]; then
CHK=$(env | grep DOCKER)
if [ ${#CHK} -lt 1 ]; then
echo 環境変数がセットされていません
exit -1
fi
echo 以前の環境からvolumeの中身を抽出...
for vol in "${VOLUME_LIST[@]}"
do
docker run --rm -v ${vol}:/vol_data -v $(pwd):/backup ubuntu tar cvf /backup/backup_${vol}.tar /vol_data
if [ $? -ne 0 ]; then
echo ${vol}のバックアップに失敗しました。中止します。
exit -2
fi
done
else
echo 失敗
exit -1
fi
echo virtualbox上のDocker環境を終了。volumeのバックアップは~/Desktopに作成されました。
echo 終了します。
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment