Deploying a CoreOS droplet on DigitalOcean with Docker-Machine

I recently encountered an irritating little hiccup when attempting to migrate Hewwn to DigitalOcean’s cloud compute service. As you may or may not be aware, CoreOS uses SSH keys to access the console by default. Root passwords are disabled. Under normal circumstances this is fine: docker-machine automatically generates and applies the certs for you at creation time.

Note, however, that omitting the --digitalocean-ssh-user attribute when calling docker-compose create -d digitalocean will result in a hung install and password prompt because the default root username for CoreOS is “core” instead of “root”.

So be sure to compensate for CoreOS trying to be a unique little snowflake, and run the following command to successfully create and provision your droplet:

docker-machine create -d digitalocean --digitalocean-image=coreos-stable --digitalocean-ssh-user=core --digitalocean-access-token=##YOUR API TOKEN##

More droplet specificity can be achieved with DigitalOcean driver attributes described in the docker documentation.