Get started with QuestDB via Docker

QuestDB has images for both Linux/macOS and Windows on Docker Hub.

Install Docker#

Before we start, you will need to install Docker. You can find guides for your platform on the official documentation.

QuestDB image#

Once Docker is installed, you will need to pull QuestDB's image from Docker Hub and create a container. You can do both in one command using docker run:

docker run -p 9000:9000 -p 8812:8812 questdb/questdb


-pPort to publish to the host
-vTo bind mount a volume

-p parameter#

This parameter will publish a port to the host, you can specify:

-v volumes#

The QuestDB root_directory will be in the following location:


Container status#

You can check the status of your container with docker ps. It also lists the ports we published:

docker ps
dd363939f261 questdb/questdb "/app/bin/java -m io…" 3 seconds ago Up 2 seconds 8812/tcp, 9000/tcp frosty_gauss

Importing data and sending queries#

Now that QuestDB is running, you can start interacting with it:

  • If you published the port 9000, you can follow our REST page
  • If you published the port 8812, follow our Postgres page
  • If you published the port 9009, follow our InfluxDB page

Data persistence#

Restart an existing container#

When you stop the container, it will not be removed by Docker. This means that you can restart it anytime and your data will be accessible:

Start container from the ID obtained with 'docker ps'
docker start dd363939f261

Re-run docker run#

If you re-run the command:

docker run -p 9000:9000 -p 8812:8812 questdb/questdb

A new container will be created for the QuestDB image. This means that the container will be fresh, any data you may have created previously won't be accessible.