- Added clarity and structure to README files, including recent updates and getting started sections. - Improved manual verification documentation for CrowdSec authentication, emphasizing expected outputs and success criteria. - Updated debugging guide with detailed output examples and automatic trace capture information. - Refined best practices for E2E tests, focusing on efficient polling, locator strategies, and state management. - Documented triage report for DNS Provider feature tests, highlighting issues fixed and test results before and after improvements. - Revised E2E test writing guide to include when to use specific helper functions and patterns for better test reliability. - Enhanced troubleshooting documentation with clear resolutions for common issues, including timeout and token configuration problems. - Updated tests README to provide quick links and best practices for writing robust tests.
4.3 KiB
title, description, category
| title | description | category |
|---|---|---|
| Docker Auto-Discovery | Automatically find and proxy Docker containers with one click | integration |
Docker Auto-Discovery
Already running apps in Docker? Charon automatically finds your containers and offers one-click proxy setup. Supports both local Docker installations and remote Docker servers.
Overview
Docker auto-discovery eliminates manual IP address hunting and port memorization. Charon queries the Docker API to list running containers, extracts their network information, and lets you create proxy configurations with a single click.
How It Works
- Charon connects to Docker via socket or TCP
- Queries running containers and their exposed ports
- Displays container list with network details
- You select a container and assign a domain
- Charon creates the proxy configuration automatically
Why Use This
Eliminate IP Address Hunting
- No more running
docker inspectto find container IPs - No more updating configs when containers restart with new IPs
- Container name resolution handles dynamic addressing
Accelerate Development
- Spin up a new service, proxy it in seconds
- Test different versions by proxying multiple containers
- Remove proxies as easily as you create them
Simplify Team Workflows
- Developers create their own proxy entries
- No central config file bottlenecks
- Self-service infrastructure access
Configuration
Docker Socket Mounting
For Charon to discover containers, it needs Docker API access.
Docker Compose:
services:
charon:
image: charon:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
Docker Run:
docker run -v /var/run/docker.sock:/var/run/docker.sock:ro charon
Security Note: The socket grants significant access. Use read-only mode (
:ro) and consider Docker socket proxies for production.
Remote Docker Server Support
Connect to Docker hosts over TCP:
- Go to Settings → Docker
- Click Add Remote Host
- Enter connection details:
- Name: Friendly identifier
- Host: IP or hostname
- Port: Docker API port (default: 2375/2376)
- TLS: Enable for secure connections
- Upload TLS certificates if required
- Click Test Connection, then Save
Container Selection Workflow
Viewing Available Containers
- Navigate to Hosts → Add Host
- Click Select from Docker
- Choose Docker host (local or remote)
- Browse running containers
Container List Display
Each container shows:
- Name: Container name
- Image: Source image and tag
- Ports: Exposed ports and mappings
- Networks: Connected Docker networks
- Status: Running, paused, etc.
Creating a Proxy
- Click a container row to select it
- If multiple ports are exposed, choose the target port
- Enter the domain name for this proxy
- Configure SSL options
- Click Create Host
Automatic Updates
When containers restart:
- Charon continues proxying to the container name
- Docker's internal DNS resolves the new IP
- No manual intervention required
Advanced Configuration
Network Selection
If a container is on multiple networks, specify which network Charon should use for routing:
- Edit the host after creation
- Go to Advanced → Docker
- Select the preferred network
Port Override
Override the auto-detected port:
- Edit the host
- Change the backend URL port manually
- Useful for containers with non-standard port configurations
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| No containers shown | Socket not mounted | Add Docker socket volume |
| Connection refused | Remote Docker not configured | Enable TCP API on Docker host |
| Container not proxied | Container not running | Start the container |
| Wrong IP resolved | Multi-network container | Specify network in advanced settings |
Security Considerations
- Socket Access: Docker socket provides root-equivalent access. Mount read-only.
- Remote Connections: Always use TLS for remote Docker hosts.
- Network Isolation: Use Docker networks to segment container communication.
Related
- Web UI - Point & click management
- SSL Certificates - Automatic HTTPS for proxied containers
- Back to Features