Skip to content

Instantly share code, notes, and snippets.

@vbatts
Created May 28, 2015 15:36
Show Gist options
  • Save vbatts/edb25424b3249e5e731b to your computer and use it in GitHub Desktop.
Save vbatts/edb25424b3249e5e731b to your computer and use it in GitHub Desktop.
Isolated Docker daemon (for testing and portability)
#!/bin/sh
set -e
while getopts Dd:s:f:H: c; do
case $c in
H) # docker socket to use
export DOCKER_HOST="$OPTARG"
;;
d) # docker binary to use
export DOCKER="$OPTARG"
;;
f) # file to use on loop back
export filename="$OPTARG"
;;
S) # filesize of the loopback
export filesize="$OPTARG"
;;
s) # storage driver to use
export DOCKER_STORAGE_DRIVER="$OPTARG"
;;
D) # verbose
set -x
;;
esac
done
CWD="$(dirname $(readlink -f $0))"
DOCKER=${DOCKER:-${CWD}/docker-1.7.0-dev}
filename=${filename:-${CWD}/btrfs.img}
filesize=${filesize:-100G}
DOCKER_HOST=${DOCKER_HOST:-tcp://0.0.0.0:6666}
DOCKER_STORAGE_DRIVER=${DOCKER_STORAGE_DRIVER:-btrfs}
if [ ! -f "${filename}" ] ; then
truncate -s "${filesize}" "${filename}"
devname=$(losetup -f --show "${filename}")
if [ "x$DOCKER_STORAGE_DRIVER" = "xbtrfs" ] ; then
mkfs.btrfs "${devname}"
elif [ "x$DOCKER_STORAGE_DRIVER" = "xoverlay" ] ; then
mkfs.ext4 "${devname}"
else
echo "do not know what to do with $DOCKER_STORAGE_DRIVER"
losetup -d ${devname}
exit 1
fi
losetup -d ${devname}
fi
mount -o loop "${filename}" "${CWD}/docker"
trap "umount ${CWD}/docker" SIGINT SIGTERM
echo "export DOCKER_HOST=${DOCKER_HOST}"
echo "alias docker=${DOCKER}"
echo "(press enter to continue)"
read
DEBUG=1 "${DOCKER}" -d -D -H ${DOCKER_HOST} -s "${DOCKER_STORAGE_DRIVER}" -g "${CWD}/docker" -p "${CWD}/docker.pid"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment