Initialize Dapr in your local environment

Now that you have the Dapr CLI installed, it’s time to initialize Dapr on your local machine using the CLI.

Dapr runs as a sidecar alongside your application, and in self-hosted mode this means it is a process on your local machine. Therefore, initializing Dapr includes fetching the Dapr sidecar binaries and installing them locally.

In addition, the default initialization process also creates a development environment that helps streamline application development with Dapr. This includes the following steps:

  1. Running a Redis container instance to be used as a local state store and message broker
  2. Running a Zipkin container instance for observability
  3. Creating a default components folder with component definitions for the above
  4. Running a Dapr placement service container instance for local actor support

Step 1: Open an elevated terminal

If you run your Docker commands with sudo, or the install path is /usr/local/bin (default install path), you will need to use sudo below.

Make sure that you run Command Prompt as administrator (right click, run as administrator)

Step 2: Run the init CLI command

Install the latest Dapr runtime binaries:

dapr init

Step 3: Verify Dapr version

dapr --version

Output should look like this:

CLI version: 1.5.1
Runtime version: 1.5.1

Step 4: Verify containers are running

As mentioned above, the dapr init command launches several containers that will help you get started with Dapr. Verify this by running:

docker ps

Make sure that instances with daprio/dapr, openzipkin/zipkin, and redis images are all running:

CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS         PORTS                              NAMES
0dda6684dc2e   openzipkin/zipkin        "/busybox/sh"     2 minutes ago   Up 2 minutes   9410/tcp,>9411/tcp   dapr_zipkin
9bf6ef339f50   redis                    "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes>6379/tcp             dapr_redis
8d993e514150   daprio/dapr              "./placement"            2 minutes ago   Up 2 minutes>50005/tcp            dapr_placement

Step 5: Verify components directory has been initialized

On dapr init, the CLI also creates a default components folder which includes several YAML files with definitions for a state store, pub/sub and zipkin. These will be read by the Dapr sidecar, telling it to use the Redis container for state management and messaging and the Zipkin container for collecting traces.

  • In Linux/MacOS Dapr is initialized with default components and files in $HOME/.dapr.
  • For Windows Dapr is initialized to %USERPROFILE%\.dapr\


ls $HOME/.dapr

You should see:

bin  components  config.yaml

Using Command Prompt (not PowerShell), open %USERPROFILE%\.dapr\ in file explorer:

explorer "%USERPROFILE%\.dapr\"

You will see the Dapr config, Dapr binaries directory, and the default components directory for Dapr:

Next step: Use the Dapr API >>

Last modified January 24, 2022: PubSub overview: correct typo (#2110) (2aaae12)