Я искал простой способ резервного копирования моих существующих экземпляров docker в соответствующие архивы tar, и я написал следующий скрипт. Я понимаю, что Docker экземпляры должны быть просто уничтожены и созданы заново из Dockerfile (s). Однако у меня есть пользователи, которые изменяют запущенные экземпляры, не отслеживая предпринятые шаги. Я хотел поддержать их усилия, поддержав их работу. Любые предложения о том, как улучшить стратегию? Есть ли четкий способ экспортировать запущенные экземпляры в Dockerfile (ы)?
#!/bin/bash
IMAGETAG=$(date +"%Y")
TARDATE=$(date +"%m%Y")
SAVEDIR=/data/.docker_bak
for IMAGENAME in $(docker ps --format '{{.Names}}');
do
docker rmi ${IMAGENAME}:${IMAGETAG}
docker stop ${IMAGENAME}
sleep 1
docker commit ${IMAGENAME} ${IMAGENAME}:${IMAGETAG}
sleep 1
docker start ${IMAGENAME}
docker save -o ${SAVEDIR}/${IMAGENAME}_${TARDATE}.tar ${IMAGENAME}:${IMAGETAG}
done