Skip to content

Instantly share code, notes, and snippets.

@avoidik
Created August 18, 2017 08:24
Show Gist options
  • Save avoidik/0b3d844ecbb8744e6070cb33d7af134e to your computer and use it in GitHub Desktop.
Save avoidik/0b3d844ecbb8744e6070cb33d7af134e to your computer and use it in GitHub Desktop.
docker cleaner
alias docker-full-cleanup='func_full-cleanup-docker'

func_full-cleanup-docker() {

  echo "WARN: This will remove everything from docker: volumes, containers and images. Will you dare? [y/N] "
  read choice

  if [ \( "$choice" == "y" \) -o \( "$choice" == "Y" \) ]
  then
    sudo echo "> sudo rights check [OK]"
    sizea=`sudo du -sh /var/lib/docker/aufs`

    echo "Stopping all running containers"
    containers=`docker ps -a -q`
    if [ -n "$containers" ]
    then
      docker stop $containers
    fi

    echo "Removing all docker images and containers"
    docker system prune -f

    echo "Stopping Docker daemon"
    sudo service docker stop

    echo "Removing all leftovers in /var/lib/docker (bug #22207)"
    sudo rm -rf /var/lib/docker/aufs
    sudo rm -rf /var/lib/docker/image/aufs
    sudo rm -f /var/lib/docker/linkgraph.db

    echo "Starting Docker daemon"
    sudo service docker start

    sizeb=`sudo du -sh /var/lib/docker/aufs`
    echo "Size before full cleanup:"
    echo "        $sizea"
    echo "Size after full cleanup:"
    echo "        $sizeb"
  fi
}
#!/bin/sh
docker images -q > /etc/docker-gc-exclude    # Save all genuine images as exclude
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc:ro spotify/docker-gc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment