Quick Start with Install on Docker 
Prerequisites
1. Install the Meshery command line client, mesheryctl .Deploying Meshery on Docker
Follow these steps to run Meshery with Docker and Docker Compose, a common way to run Meshery on your local machine. To install Docker, see Getting Started with Docker. To install Docker Compose, see Installing Docker Compose.
Start Meshery:
mesheryctl system start -p docker
Advanced Configuration
Customizing Kubernetes Configuration Location
By default, Meshery Server looks for Kubernetes configuration in the $HOME/.kube directory of the user it runs as, and mesheryctl mounts your $HOME/.kube there read-only. To use a different location, set the KUBECONFIG_FOLDER environment variable and mount the folder into the meshery container.
mesheryctl system start rewrites the meshery service in ~/.meshery/meshery.yaml each time it starts, so edits to that file do not persist. To use a custom kubeconfig location, run Meshery with Docker Compose directly, using a copy of install/docker/docker-compose.yaml, and change the meshery service:
services: meshery: environment: - "KUBECONFIG_FOLDER=/custom/path/to/.kube" volumes: - /custom/path/to/.kube:/custom/path/to/.kube:ro
Then start it with docker compose up -d. A custom location is useful when you are:
- Providing a Meshery deployment with a predefined Kubernetes context
- Running Meshery in containerized environments with custom kubeconfig paths
- Managing several Kubernetes configurations
Post-Installation Steps
Optionally, verify the health of your Meshery deployment with mesheryctl system check.
You’re ready to use Meshery. Open Meshery UI in your browser.
Accessing Meshery UI
Once Meshery is running, mesheryctl system start opens Meshery UI in your default browser. On Docker, Meshery UI listens at http://localhost:9081 by default. On Kubernetes, mesheryctl opens the address of the meshery service in the meshery namespace, which the Helm chart creates as a LoadBalancer service on port 9081.
To open Meshery UI in your default browser at any time, run:
mesheryctl system dashboard
If your cluster does not give the meshery service a reachable address, forward a local port to Meshery instead. By default, mesheryctl listens on local port 9081; use -p to choose another port.
mesheryctl system dashboard --port-forward
You can also port-forward with kubectl:
kubectl port-forward svc/meshery 9081:9081 --namespace meshery
Verify Kubernetes Connection
Whichever way you installed Meshery, verify that Meshery is connected to your cluster:- In the Meshery UI, navigate to Lifecycle from the menu on the left.
- Select Connections.
- Ensure that your cluster appears in the list of connections and is marked as
Connected. - Click the cluster name to run a connectivity test and confirm that Meshery can reach your cluster.
Customizing Your Meshery Provider Callback URL
You can customize the callback URL that your Meshery Provider redirects to after sign-in. This helps when Meshery runs behind several layers of networking infrastructure.
For production deployments, we recommend that you expose Meshery UI through a reverse proxy or a load balancer. A custom callback URL makes sure that sign-in completes even when requests pass through several routing layers.
Note: For production deployments, use a Remote Provider so that you control which identity providers can sign users in. Learn more about this in the Extensibility: Providers guide.
To set a custom callback URL, set the MESHERY_SERVER_CALLBACK_URL environment variable when you start Meshery:
MESHERY_SERVER_CALLBACK_URL=https://custom-host mesheryctl system start
On Kubernetes, Meshery UI is then available at the EXTERNAL-IP of the meshery service. Run kubectl get svc meshery -n meshery to find it.
- Docker Extension - Install Docker Extension for Meshery