DockerHub - データコンテナの使い方 - Qiita
cronに登録しておく
#!/bin/sh
set -eu
WORKDIR="/mnt/usb/docker"
if [ ! -d $WORKDIR ];then
echo "$WORKDIR cannot access" | mail -s "alminiumbackup.sh" tukiyo3@gmail.com
fi
docker commit -a "tukiyo3 <tukiyo3@gmail.com>" c3215e67cf97 private/alminium-backup
docker save -o $WORKDIR/alminium-backup.tar private/alminium-backup
gzip $WORKDIR/alminium-backup.tar
mv $WORKDIR/alminium-backup.tar.gz $WORKDIR/alminium-backup.tar.gz.`date "+%a"`
dockerのIMAGEは積み上げ式
IMAGEは積み上げ式です。
コミットすると前のIMAGEに追加されます。
前のIMAGE内にあったファイルを削除しコミットしたところでIMAGEサイズは縮みません。
IMAGEのサイズを小さく抑え続けるにはIMAGEに対するコミットの回数を極力減らすこととなる。
手順
- docker上のCentOS7でsshdを起動 - Qiitaを済ませてcommitしておく。
docker run \
--name production \
-it \
-d \
-p 2222:22 \
tukiyo3/centos-ja:7.0sshd \
/usr/sbin/sshd -D
こんな感じで起動させておき、
オートコミット
docker commit \
--pause=false \
-a "tukiyo3 <tukiyo3@gmail.com>" \
$(docker ps -a | awk '/production\s+$/{print $1}') \
"tukiyo3/production:$(date '+%Y%m%d_%H%M')" \
|| mail -s "auto commit error" tukiyo3@gmail.com
-
--pause=false
はdocker1.1.0で追加された、コミット中の動作一時停止しないオプション
save(イメージ->tar)
docker save -o 20140715_0808 tukiyo3/production
- docker export (コンテナ->tar)はそのままだと復元できないので使わないように。
後は古いイメージをHDD容量と相談しながら削除。
増分の保存なのでそんなに一気には増えないでしょう。
tarからイメージ復元
docker load -i private_alminium.tar