CockroachDB in Single User Mode on Docker
I’ve been using CockroachDB for a while now, but when I first tried to use it locally I followed the instructions here, however, they are a bit over the top for my needs. I don’t want three nodes, I don’t want three volumes, I don’t want a network. All I want to do is run a single node to try out some things.
The documentation talks about using the cockroach start-single-node
command, but it doesn’t mention how to do this in Docker. It took a bit of trial and error to get it working.
Here is how to do it.
Step 1
Download the image, and start the container.
This will create a container named mycockroach
and start it in the background. It will expose ports 26257 and 8080 to the host machine. The --insecure
flag is required to allow connections without SSL.
Port 26257 is the default port for the SQL interface, you would use this from a Postgres client (I won’t be connecting to this port in this example). 8080 is the default port for the web administration interface.
docker run -d --name=mycockroach -p 26257:26257 -p 8080:8080 cockroachdb/cockroach:latest start-single-node --insecure
Step 2
Connect to the running docker container, and open start the Cockroach SQL prompt.
docker exec -it mycockroach ./cockroach sql --insecure
Now you can use Postgres commands to create a databases, perform queries, etc.
Step 3
Stop the container.
docker stop mycockroach
Step 4 (optional)
Restart the container.
docker start mycockroach
That’s it. You now have a single node CockroachDB running in Docker, easy when you know how!