How to setup a MongoDB database in Dockermongodbdocker
Why you should run databases in docker for local development #
Installing and maintaining a local version of a database can take up a lot of valuable time. Setting up a database in docker can help save that time, and make the the installation a lot more portable, since docker containers can be moved around.
If you have multiple applications that need different versions of MongoDB on your local machine, then running each of them in a docker container can make it a trivial task.
If you are new to docker, read up here — https://www.docker.com/products/docker-desktop. Assuming you have docker setup on your machine, following steps illustrate how to setup a MongoDB database in a docker container
Create a container running MongoDB #
docker run -p <host_machine_port>:27017 --name <container_name> -e MONGO_INITDB_ROOT_USERNAME=<root_username> -e MONGO_INITDB_ROOT_PASSWORD=<root_password> -d mongo:<version>
Let us look at all the parameters in the above command
<host_machine_port> — The port on your local machine that you want the container connected to. For example, if you want the mongo instance on localhost:3310, your
<host_machine_port> would be
<container_name> — The name of the container that will be created
<root_username> — The username for the root user on the mongo instance.
<root_password> — The password for the root user on the mongo instance.
<version> — The version of MongoDB that you want to run
For example, if you want to create a MongoDB instance using the latest version of MongoDB with a database called people with a root password = my_password connected to your local machine port 3310, the following command would accomplish that.
docker run -p 3310:27017 --name mongo_db_instance -e MONGO_INITDB_ROOT_USERNAME=mongorootuser -e MONGO_INITDB_ROOT_PASSWORD=mongopassword -d mongo
Verify container status using this command
docker container ls
The above command will display all the docker containers running on your machine, and you should see your newly created container.
Connect to the database instance #
Now you can connect to the mongo database instance using the
mongo command if you have it installed on your local machine. But given the fact that we did not want to install mongo on our local machine in the first place, it would be better if we connect to the database using shell access inside the container.
Get shell access inside the docker container using
docker exec -it <container_name> bash
And then run
mongo command inside the container to connect to the database.
- MongoDB Docker
- Docker Desktop