Back already…For whatever reason, I am having a hard time getting traefik and a socket-proxy to work together. I am unable to access the traefik dashboard when I enable the socket-proxy. I am able to ping both traefik and the socket-proxy by name from there shell. Here are some of the traefik logs that I have been working with on finding answer that I haven't found yet...lol.
2026-01-27T15:51:15Z ERR github.com/traefik/traefik/v3/pkg/provider/docker/pdocker.go:81 > Failed to retrieve information of the docker client and server host error="Error response from daemon: 503 Service Unavailable\nNo server is available to handle this request.\n" providerName=docker
2026-01-27T15:51:15Z ERR github.com/traefik/traefik/v3/pkg/provider/docker/pdocker.go:152 > Provider error, retrying in 654.331894ms error="Error response from daemon: 503 Service Unavailable\nNo server is available to handle this request.\n" providerName=docker
Traefik Compose File
networks:
traefik:
external: true
socket-proxy:
external: true
backend:
external: true
###########################################################################
services:
traefik:
image: traefik:latest
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
ports:
- 80:80
- 443:443
environment:
CF_DNS_API_TOKEN: ${CF_DNS_API_TOKEN}
CF_API_EMAIL: ${CF_API_EMAIL}
TRAEFIK_DASHBOARD_CREDENTIALS: ${TRAEFIK_DASHBOARD_CREDENTIALS}
env_file: .env
volumes:
- /etc/localtime:/etc/localtime:ro
#- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik.yml:/traefik.yml:ro
- ./data/acme.json:/acme.json
- ./log:/var/log/traefik
# - ./dynamic/config.yml:/config.yml:ro
labels:
- "traefik.enable=true"
# HTTP Dashboard Router ###########################################################################
- "traefik.http.routers.traefik.entrypoints=http"
- "traefik.http.routers.traefik.rule=Host(`traefik.domain.com`)"
- "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
# Middlewares ###########################################################################
- "traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_DASHBOARD_CREDENTIALS}"
- "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
- "traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto=https"
- "traefik.http.middlewares.traefik-ratelimit.ratelimit.average=100"
- "traefik.http.middlewares.traefik-ratelimit.ratelimit.burst=50"
# HTTPS Dashboard Router ###########################################################################
- "traefik.http.routers.traefik-secure.entrypoints=https"
- "traefik.http.routers.traefik-secure.rule=Host(`traefik.alwayzsomthin.com`)"
- "traefik.http.routers.traefik-secure.middlewares=traefik-auth,traefik-ratelimit"
- "traefik.http.routers.traefik-secure.tls=true"
- "traefik.http.routers.traefik-secure.tls.certresolver=letsencrypt"
- "traefik.http.routers.traefik-secure.tls.domains[0].main=domain.com"
- "traefik.http.routers.traefik-secure.tls.domains[0].sans=*.domain.com"
- "traefik.http.routers.traefik-secure.service=api@internal"
###########################################################################
networks:
traefik:
ipv4_address: 10.1.17.20
socket-proxy:
ipv4_address: 10.1.1.21
backend:
ipv4_address: 10.1.27.20
Traefik.yml
api:
dashboard: true
debug: true
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: ":443"
###########################################################################
serversTransport:
insecureSkipVerify: true
###########################################################################
providers:
docker:
#endpoint: "unix:///var/run/docker.sock"
endpoint: "tcp://docker-socket-proxy:2375"
exposedByDefault: false
network: traefik
# file:
# filename: /config.yml
certificatesResolvers:
letsencrypt:
acme:
email: email@email.com
storage: acme.json
caServer: https://acme-v02.api.letsencrypt.org/directory # prod (default)
#caServer: https://acme-staging-v02.api.letsencrypt.org/directory # staging
dnsChallenge:
provider: cloudflare
resolvers:
- "1.1.1.1:53"
- "1.0.0.1:53"
###########################################################################
log:
level: "DEBUG"
filePath: "/var/log/traefik/traefik.log"
accessLog:
filePath: "/var/log/traefik/access.log"
Socket-Proxy Compose
networks:
socket-proxy:
external: true
###########################################################################
services:
docker-proxy:
image: lscr.io/linuxserver/socket-proxy:latest
container_name: docker-socket-proxy
restart: unless-stopped
security_opt:
- no-new-privileges:true
environment:
- LOG_LEVEL=debug
## Variables match the URL prefix (i.e. AUTH blocks access to /auth/* parts of the API, etc.).
# 0 to revoke access.
# 1 to grant access.
## Granted by Default
- EVENTS=1
- PING=1
- VERSION=1
## Revoked by Default
# Security critical
- AUTH=0
- SECRETS=0
- POST=1 # Portainer and Watchtower
# Not always needed
- BUILD=0
- COMMIT=0
- CONFIGS=0
- CONTAINERS=1 # Traefik, Portainer, etc.
- DISTRIBUTION=0
- EXEC=0
- IMAGES=1 # Portainer
- INFO=1 # Portainer
- NETWORKS=1 # Portainer
- NODES=0
- PLUGINS=0
- SERVICES=1 # Portainer
- SESSION=0
- SWARM=0
- SYSTEM=0
- TASKS=1 # Portainer
- VOLUMES=1 # Portainer
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/var/run/docker.sock:/var/run/docker.sock.ro"
ports:
- "2375:2375"
networks:
socket-proxy:
ipv4_address: 10.1.1.20