I am playing around with a MEAN javascript project.
(mongoDB + angular + sails.js + node.js)
As I am offline a lot of the time, I'd like to keep my dev environment, running in a docker container, on OS X laptop, using boot2docker.
The 'production' (not actual production, just somewhere I deploy to to show it to friends) is a Digital Ocean droplet running Ubuntu as host and hopefully the same docker container.
I expect that the environment won't change very often and that I can continue using git push/pull to push just the code changes.
Do I need anything else other than what I described above?
Do I need Vagrant, for example to deploy that docker container or is that an overkill?
Can docker specify all all my needs, that is the right version of node.js, sails etc?
Is there a ready made container I can reuse or modify rather than starting from scratch?
Answers to your questions:
Do I need anything else other than what I described above?
What you described sounds very reasonable. But keep in mind that you don't want to use one docker container, but rather one container per service. That means: one container running mongo, one container running node, and so on. That is a Docker best practice.
Do I need Vagrant, for example to deploy that docker container or is that an overkill?
It sounds like your rather simple setup does not require Vagrant. You can use Dockerfiles to build images that have everything you need installed. See the Dockerfile Reference and Dockerfile best Practices.
Can docker specify all my needs, that is the right version of node.js, sails etc?
Yes, every Docker image has a certain version of the service that will run inside the container. That's one of the points of using containers.
Is there a ready made container I can reuse or modify rather than starting from scratch?
Yes, there are many ready made containers to be found on the Docker Hub. Use these images as a base when writing your Dockerfiles to install anything additionally to what is supplied within the image on Docker Hub.
Also, check out Volumes to figure out how to handle source code in development.