#!/bin/bash# Copyright 2017 Théo Chamley# Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in the Software# without restriction, including without limitation the rights to use, copy, modify, merge,# publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons# to whom the Software is furnished to do so, subject to the following conditions:## The above copyright notice and this permission notice shall be included in all copies or# substantial portions of the Software.## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,IMAGES=$@echo "This will remove all your current containers and images except for:"echo ${IMAGES}read -p "Are you sure? [yes/NO] " -n 1 -recho # (optional) move to a new lineif [[ ! $REPLY =~ ^[Yy]$ ]]then exit 1fiTMP_DIR=$(mktemp -d)pushd $TMP_DIR >/dev/nullopen -a Dockerecho "=> Saving the specified images"for image in ${IMAGES}; do echo "==> Saving ${image}" tar=$(echo -n ${image} | base64) docker save -o ${tar}.tar ${image} echo "==> Done."doneecho "=> Cleaning up"echo -n "==> Quiting Docker"osascript -e 'quit app "Docker"'while docker info >/dev/null 2>&1; do echo -n "." sleep 1done;echo ""echo "==> Removing Docker.qcow2 file"rm ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2echo "==> Launching Docker"open -a Dockerecho -n "==> Waiting for Docker to start"until docker info >/dev/null 2>&1; do echo -n "." sleep 1done;echo ""echo "=> Done."echo "=> Loading saved images"for image in ${IMAGES}; do echo "==> Loading ${image}" tar=$(echo -n ${image} | base64) docker load -q -i ${tar}.tar || exit 1 echo "==> Done."donepopd >/dev/nullrm -r ${TMP_DIR}