The problem with CoreOS is that you cannot run the Discourse tools to build and run the Discourse docker container. ./discourse-setup will not run on CoreOS.
My solution was to run an Ubuntu Docker container which itself runs docker - Docker in Docker - and within this container build and run the Discourse container. This is scripted so when I run the container, it updates Discourse and builds the new Discourse docker image.
The only problem with this is that restarting the container took ages - so I split the process: one container builds the Discourse image and saves it to a shared volume (I only run this when I want to update Discourse). A second Docker image just uses DinD to load the Discourse docker image from the shared volume (a folder on the host) and run it using the Discourse scripts.
All the benefit of CoreOs and still able to run Discourse. Bit of a hassle but it works well. Only issue that I am still looking at is that in order to run Docker in Docker, the Ubuntu container needs higher privileges than I would like.
Oh and I also run postgres in a separate container as this is shared with other containers on the box… finally, another container runs nginx as a reverse proxy which provides the SSL endpoing and some additional security.
(and @ljpp - you can add nano to Coreos, you just need a static build)