Skip to content

Instantly share code, notes, and snippets.

@eugeneai
Created November 16, 2014 02:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eugeneai/8198d5472e21869556e3 to your computer and use it in GitHub Desktop.
Save eugeneai/8198d5472e21869556e3 to your computer and use it in GitHub Desktop.
cleanum docker
Cleanup docker images and containers
By Dan Sosedoff on 17 Dec 2013
Docker is a fantastic tool to create lightweight containers for any application or stack, powered by LXC, which im a big fan of. There are no special ways of building docker images, some folks are using Chef/Puppet, etc. However, docker brings a very simple way to define image build steps: Dockerfiles.
Example of the Dockerfile:
FROM ubuntu:12.04
MAINTAINER Dan Sosedoff "dan.sosedoff@gmail.com"
# Update system
RUN apt-get update -y
RUN apt-get upgrade -y
# Setup SSH server
RUN apt-get install -y openssh-server
RUN mkdir /var/run/sshd
# Start SSH server
CMD /usr/sbin/sshd -D
Basically, each RUN command will create an intermediate container. If you're in the process of developing your images, running lots of build commands will at some point make your system run out of disk space. There are few ways to reduce this overhead.
Cleanup after build
Typically i build images with the following command:
docker build -t=myimage -rm=true .
This will build a new image with name myimage and after build is complete Docker will automatically remove intermediate containers
Flush everything
Sometimes its necessary to get rid of all containers and images to start from scratch. You can do everything by hand, but it might take a while. Instead, here are 2 scripts to handle that for you.
Container cleanup script:
#!/bin/bash
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
And image cleanup script:
#!/bin/bash
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker rmi $(docker images -a -q)
Running both scripts will get rid of all containers (stopped or running) and remove all existing images so you can start from scratch.
NOTE: If you delete image before you delete any container that uses it you'll have an issue with orphaned NFS nodes and only machine reboot will fix it. Hopefully this issue will be resolved soon.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment