init CLI command reference

Detailed information on the init CLI command

Description

Install Dapr on supported hosting platforms.

Supported platforms

Usage

  1. dapr init [flags]

Flags

NameEnvironment VariableDefaultDescription
—dashboard-versionlatestThe version of the Dapr dashboard to install, for example: 1.0.0
—enable-hafalseEnable high availability (HA) mode
—enable-mtlstrueEnable mTLS in your cluster
—from-dirPath to a local directory containing a downloaded “Dapr Installer Bundle” release which is used to init the airgap environment
—help, -hPrint this help message
—image-registryPulls container images required by Dapr from the given image registry
—kubernetes, -kfalseDeploy Dapr to a Kubernetes cluster
—namespace, -ndapr-systemThe Kubernetes namespace to install Dapr in
—networkThe Docker network on which to install and deploy the Dapr runtime
—runtime-versionlatestThe version of the Dapr runtime to install, for example: 1.0.0
—image-variantThe image variant to use for the Dapr runtime, for example: mariner
—setConfigure options on the command line to be passed to the Dapr Helm chart and the Kubernetes cluster upon install. Can specify multiple values in a comma-separated list, for example: key1=val1,key2=val2
—slim, -sfalseExclude placement service, scheduler service, and the Redis and Zipkin containers from self-hosted installation
—timeout300The wait timeout for the Kubernetes installation
—waitfalseWait for Kubernetes initialization to complete
N/ADAPR_DEFAULT_IMAGE_REGISTRYIt is used to specify the default container registry to pull images from. When its value is set to GHCR or ghcr it pulls the required images from Github container registry. To default to Docker hub, unset the environment variable or leave it blank
N/ADAPR_HELM_REPO_URLSpecifies a private Dapr Helm chart url
N/ADAPR_HELM_REPO_USERNAMEA username for a private Helm chartThe username required to access the private Dapr Helm chart. If it can be accessed publicly, this env variable does not need to be set
N/ADAPR_HELM_REPO_PASSWORDA password for a private Helm chartThe password required to access the private Dapr Helm chart. If it can be accessed publicly, this env variable does not need to be set
—container-runtimedockerUsed to pass in a different container runtime other than Docker. Supported container runtimes are: docker, podman
—devCreates Redis and Zipkin deployments when run in Kubernetes.
—scheduler-volumeSelf-hosted only. Optionally, you can specify a volume for the scheduler service data directory. By default, without this flag, scheduler data is not persisted and not resilient to restarts.

Examples

Install

Install Dapr by pulling container images for Placement, Scheduler, Redis, and Zipkin. By default, these images are pulled from Docker Hub.

By default, a dapr_scheduler local volume is created for Scheduler service to be used as the database directory. The host file location for this volume is likely located at /var/lib/docker/volumes/dapr_scheduler/_data or ~/.local/share/containers/storage/volumes/dapr_scheduler/_data, depending on your container runtime.

  1. dapr init

Dapr can also run Slim self-hosted mode, without Docker.

  1. dapr init -s

To switch to Dapr Github container registry as the default registry, set the DAPR_DEFAULT_IMAGE_REGISTRY environment variable value to be GHCR. To switch back to Docker Hub as default registry, unset this environment variable.

Specify a runtime version

You can also specify a specific runtime version. By default, the latest version is used.

  1. dapr init --runtime-version 1.13.4

Install with image variant

You can also install Dapr with a particular image variant, for example: mariner.

  1. dapr init --image-variant mariner

Use Dapr Installer Bundle

In an offline or airgap environment, you can download a Dapr Installer Bundle and use this to install Dapr instead of pulling images from the network.

  1. dapr init --from-dir <path-to-installer-bundle-directory>

Dapr can also run in slim self-hosted mode without Docker in an airgap environment.

  1. dapr init -s --from-dir <path-to-installer-bundle-directory>

Specify private registry

You can also specify a private registry to pull container images from. These images need to be published to private registries as shown below to enable Dapr CLI to pull them successfully via the dapr init command:

  1. Dapr runtime container image(dapr) (Used to run Placement) - dapr/dapr:
  2. Redis container image(rejson) - dapr/3rdparty/rejson
  3. Zipkin container image(zipkin) - dapr/3rdparty/zipkin

All the required images used by Dapr needs to be under the dapr path. The 3rd party images have to be published under dapr/3rdparty path.

image-registry uri follows the docker.io/<username> format.

  1. dapr init --image-registry docker.io/username

This command resolves the complete image URI as shown below -

  1. Placement container image(dapr) - docker.io/username/dapr/dapr:
  2. Redis container image(rejson) - docker.io/username/dapr/3rdparty/rejson
  3. zipkin container image(zipkin) - docker.io/username/dapr/3rdparty/zipkin

You can specify a different container runtime while setting up Dapr. If you omit the --container-runtime flag, the default container runtime is Docker.

  1. dapr init --container-runtime podman

Use Docker network

You can deploy local containers into Docker networks, which is useful for deploying into separate networks or when using Docker Compose for local development to deploy applications.

Create the Docker network.

  1. docker network create mynet

Initialize Dapr and specify the created Docker network.

  1. dapr init --network mynet

Verify all containers are running in the specified network.

  1. docker ps

Uninstall Dapr from that Docker network.

  1. dapr uninstall --all --network mynet
  1. dapr init -k

Using the --dev flag initializes Dapr in dev mode, which includes Zipkin and Redis.

  1. dapr init -k --dev

You can wait for the installation to complete its deployment with the --wait flag. The default timeout is 300s (5 min), but can be customized with the --timeout flag.

  1. dapr init -k --wait --timeout 600

You can also specify a specific runtime version.

  1. dapr init -k --runtime-version 1.4.0

Use the --set flag to configure a set of Helm Chart values during Dapr installation to help set up a Kubernetes cluster.

  1. dapr init -k --set global.tag=1.0.0 --set dapr_operator.logLevel=error

You can also specify a private registry to pull container images from. As of now dapr init -k does not use specific images for sentry, operator, placement, scheduler, and sidecar. It relies on only Dapr runtime container image dapr for all these images.

Scenario 1 : dapr image hosted directly under root folder in private registry -

  1. dapr init -k --image-registry docker.io/username

Scenario 2 : dapr image hosted under a new/different directory in private registry -

  1. dapr init -k --image-registry docker.io/username/<directory-name>

Last modified October 11, 2024: Fixed typo (#4389) (fe17926)