> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blinkops.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploying a Runner with Docker

> Deploy a Blink self-hosted runner using Docker or Docker Compose in your environment.

Deploy a Blink self-hosted Runner on a Linux host using Docker. The Runner uses Docker to start and manage plugin containers as workflows run.

## Prerequisites

1. **Docker Engine:** Install and start [Docker Engine](https://docs.docker.com/engine/install/) on the host.

2. **At least 40 GB of available disk space:** The file system that stores Docker data must have at least `40GB` of free space for the Runner and plugin images.

   Check the available space on the Docker data file system:

   ```bash theme={"dark"}
   df -h "$(docker info --format '{{.DockerRootDir}}')"
   ```

   In the output, confirm that the `Avail` value is at least `40G`.

3. **Docker Hub authentication:** Authenticate before deployment to prevent rate limits, TLS handshake timeouts, or image pull failures:

   ```bash theme={"dark"}
   docker login
   ```

4. **Blink permissions:** Your Blink user must have the [Owner role](/docs/blink-platform/account-management/roles#1-owner), [Contributor role](/docs/blink-platform/account-management/roles#2-contributor), or a [custom role](/docs/blink-platform/account-management/roles#adding-a-new-role) with the `runners:view` and `runners:edit` permissions.

<Warning>
  Running multiple Blink Runners on the same host is not supported.
</Warning>

***

## Network requirements

Before deploying the Runner, verify the following:

* **Container communication:** If the host uses a hardened firewall configuration, allow Docker containers to communicate with each other. Docker assigns ports dynamically, so the rule must permit internal container-to-container traffic rather than a single fixed port.
* **DNS resolution:** Confirm that every DNS server configured on the host resolves external addresses correctly.
* **Outbound HTTPS:** Allow the Runner to connect to Blink services and Docker Hub over port `443`. See [Runner network requirements](/docs/blink-platform/runners/runners#traffic-from-your-runner-to-blink) for the required destinations.

***

## Deploy the Runner

<Steps>
  <Step title="Navigate to the Runners page">
    In the Blink console, select **Runners** in the left navigation, then click **New Runner**.
  </Step>

  <Step title="Configure the Runner Group">
    * **Runner types**: Docker

    * **Name**: Enter a name for the Runner group.

    * **Tags**: Add or create tags (optional).

    * **Set as default runner:** Check this box to set this Runner group as the default. When enabled, any workflows that do not explicitly specify a Runner group will automatically be assigned to this one.

          <Frame>
            <img src="https://mintcdn.com/blinkops-2/1pO3XQRCbXuOwOgX/img/Runners/DockerRunnerConfig.png?fit=max&auto=format&n=1pO3XQRCbXuOwOgX&q=85&s=749d69252a7dc30277072809540d4f71" width="867" height="541" data-path="img/Runners/DockerRunnerConfig.png" />
          </Frame>

    * **Proxy Configuration**: When enabled, it allows you to configure a proxy server that all runners in the runner group will use for outbound network traffic. This enables secure, controlled access to external resources through your organization's network.
      * **HTTP Proxy (optional)**- eg. `http://proxy.company.com:8443`
      * **HTTPS Proxy (optional)**- eg. `https://proxy.company.com:8443`
      * **No Proxy (optional)**- eg. `localhost`,`127.0.0.1`
        <Note>**Note**: If you enable 'Proxy Configuration' and configure the proxy settings, they will automatically be included in the installation command shown in the next steps.</Note>
          <Frame>
            <img src="https://mintcdn.com/blinkops-2/1pO3XQRCbXuOwOgX/img/Runners/DockerProxy.png?fit=max&auto=format&n=1pO3XQRCbXuOwOgX&q=85&s=328585a34954011b8e9d39716e117188" width="864" height="541" data-path="img/Runners/DockerProxy.png" />
          </Frame>
  </Step>

  <Step title="Copy the installation command">
    Click the <Icon icon="copy" /> icon in the top-right corner of the command box.

    <Warning>**WARNING**: The installation command contains the Runner registration token, which cannot be retrieved again after you close the dialog. Treat the command as a secret and store it securely if you need it for future use.</Warning>

    <Frame>
      <img src="https://mintcdn.com/blinkops-2/1pO3XQRCbXuOwOgX/img/Runners/DockerCommand.png?fit=max&auto=format&n=1pO3XQRCbXuOwOgX&q=85&s=36b4e5b92ee21be537ccf90da4578e6d" width="1726" height="1080" data-path="img/Runners/DockerCommand.png" />
    </Frame>
  </Step>

  <Step title="Run the installation command">
    On the Docker host, paste and run the copied command. Wait for the installation to complete, then return to the **Runners** page and confirm that the Runner status is **Connected**.
  </Step>
</Steps>

***

## Related Articles

<CardGroup cols={2}>
  <Card title="Balancing the Load within a Runner Group" icon="rectangle-history" href="/docs/blink-platform/runners/deploying-runner/runner-group#balancing-the-load-within-a-runner-group-docker-or-kubernetes">
    Learn how to balance workloads across a Docker or Kubernetes Runner group.
  </Card>

  <Card title="Scaling up a Runner Group" icon="code-fork" href="/docs/blink-platform/runners/deploying-runner/runner-group#scaling-up-a-runner-group">
    Learn how to scale a Docker or Kubernetes Runner group.
  </Card>
</CardGroup>
