Skip to content

Deploying Dockpeek with Docker Compose

Introduction to Dockpeek

Dockpeek is an open-source, self-hosted Docker dashboard that lets you monitor and manage multiple Docker hosts from a single web interface. It supports connecting to remote Docker hosts via socket proxies, giving you visibility into all your containers across different systems.

Docker Compose Configuration

Below is the recommended Docker Compose configuration for Dockpeek:

Main Host (docker-compose.yml)

services:
  dockpeek:
    image: ghcr.io/dockpeek/dockpeek:latest
    container_name: dockpeek
    environment:
      - SECRET_KEY=my_secret_key  # Set to a secure random value
      - USERNAME=admin            # Set your preferred username
      - PASSWORD=admin            # Set your preferred password

      # Optional: Configure additional Docker hosts
      - DOCKER_HOST_1_URL=tcp://192.168.68.113:2375
      - DOCKER_HOST_1_NAME=ElitronCloud

      - DOCKER_HOST_2_URL=tcp://192.168.68.128:2375
      - DOCKER_HOST_2_NAME=Sandbox

    ports:
      - "3420:8000"
    depends_on:
      - dockpeek-socket-proxy
    restart: unless-stopped

  dockpeek-socket-proxy:
    image: lscr.io/linuxserver/socket-proxy:latest
    container_name: dockpeek-socket-proxy
    environment:
      - CONTAINERS=1
      - IMAGES=1
      - PING=1
      - VERSION=1
      - LOG_LEVEL=info
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    read_only: true
    tmpfs:
      - /run
    ports:
      - "2375:2375"
    restart: unless-stopped

Restrict port 2375 to localhost

Port 2375 exposes the unencrypted Docker daemon. Never expose this port to the internet or untrusted networks. Restrict it at the firewall level to localhost or your internal network only.

Additional Hosts (Socket Proxy Only)

Run this configuration on each additional host:

services:
  dockpeek-socket-proxy:
    image: lscr.io/linuxserver/socket-proxy:latest
    container_name: dockpeek-socket-proxy
    environment:
      - CONTAINERS=1
      - IMAGES=1
      - PING=1
      - VERSION=1
      - LOG_LEVEL=info
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    read_only: true
    tmpfs:
      - /run
    ports:
      - "2375:2375"
    restart: unless-stopped

Set a strong SECRET_KEY

Replace my_secret_key with a long random string before deploying. Generate one with: openssl rand -hex 32

Environment Variable Notes

  • SECRET_KEY: Required. Set a strong, random string.
  • USERNAME/PASSWORD: Set your preferred login credentials.
  • DOCKER_HOST_X_URL: URL of remote Docker socket.
  • DOCKER_HOST_X_NAME: Display name in the Dockpeek UI.
  • DOCKER_HOST_X_PUBLIC_HOSTNAME: Optional, inferred from socket URL if omitted.

Add more hosts incrementally (DOCKER_HOST_3_URL, etc.).

Deployment Steps

  1. Prepare Docker Compose Files Ensure your docker-compose.yml is correctly configured on your main host, and deploy the socket proxy configuration on additional hosts.

  2. Launch Dockpeek

docker compose up -d
  1. Access Dockpeek Web UI Visit the following URL in your browser:
http://<your-server-ip>:3420
  1. Login and Manage Docker Hosts Log in using your configured username and password. All connected Docker hosts will be listed.

Conclusion

Dockpeek simplifies Docker management, providing clear visibility across multiple Docker hosts through a clean and intuitive interface.


If there is an issue with this guide or you wish to suggest changes, please raise an issue on GitHub.