CB‐Spider Quickstart on Docker Desktop (macOS) - cloud-barista/cb-spider GitHub Wiki

CB-Spider Quickstart on Docker Desktop (macOS)

  • CB-Spider may bind to 127.0.0.1:1024 inside the container, so it cannot be reachable from the host.
  • Docker Desktop (macOS) does not support --network host.
  • This Guide makes CB-Spider accessible from your host Mac at http://localhost:1024

[Contents]


Use Docker CLI

  1. Start CB-Spider
docker run -d --name cb-spider \
  -p 1024:1024 \
  -v ${HOME}/cloud-barista/cb-spider/meta_db:/root/go/src/github.com/cloud-barista/cb-spider/meta_db \
  cloudbaristaorg/cb-spider:latest
  1. Add a socat sidecar (shares the same network namespace)
  • Purpose: Make CB-Spider accessible from your host Mac without changing its configuration.
docker run -d --name cb-spider-proxy \
  --network container:cb-spider \
  alpine sh -lc '
    apk add --no-cache socat >/dev/null &&
    IP=$(hostname -i) &&
    exec socat -dd TCP-LISTEN:1024,bind=${IP},fork TCP:127.0.0.1:1024
  '
  1. Open AdminWeb
open http://localhost:1024/spider/adminweb          # macOS
  1. Clean up
docker rm -f cb-spider-proxy cb-spider

Use Docker Compose

  1. Create docker-compose.yaml
version: "3.8"

services:
  cb-spider:
    image: cloudbaristaorg/cb-spider:latest
    container_name: cb-spider
    ports:
      - "1024:1024"
    volumes:
      - ${HOME}/cloud-barista/cb-spider/meta_db:/root/go/src/github.com/cloud-barista/cb-spider/meta_db
    restart: unless-stopped

  cb-spider-proxy:
    image: alpine:3.20
    container_name: cb-spider-proxy
    network_mode: "container:cb-spider"
    depends_on:
      - cb-spider
    restart: unless-stopped
    command: >
      sh -c '
        apk add --no-cache socat >/dev/null &&
        sleep 5 &&
        IP=$$(hostname -i) &&
        echo "Container IP: $$IP" &&
        exec socat -dd TCP-LISTEN:1024,bind=$$IP,fork TCP:127.0.0.1:1024
      '
  1. Start CB-Spider + proxy sidecar (socat)
docker compose up -d
  1. Open AdminWeb
open http://localhost:1024/spider/adminweb          # macOS
  1. Clean up
docker compose down