1
0
Fork 0
docker-easy-haproxy/docs/getting-started/docker.md
Joao Gilberto Magalhaes a410b34521 Documentation Refactor
2026-02-20 11:46:57 -05:00

66 lines
1.9 KiB
Markdown

---
sidebar_position: 3
sidebar_label: "Docker"
---
# Docker
EasyHAProxy inspects running Docker containers, reads their labels, and configures HAProxy automatically.
:::warning Limitations
- You cannot mix Docker containers with Swarm containers.
- This method does not work with containers that use the `--network=host` option. See [limitations](../concepts/limitations.md) for details.
:::
## Step 1 — Create a shared network
```bash
docker network create easyhaproxy
```
It's recommended to use an external network so EasyHAProxy and your app containers can communicate.
## Step 2 — Run EasyHAProxy
```bash
docker run -d \
--name easy-haproxy-container \
-v /var/run/docker.sock:/var/run/docker.sock \
-e EASYHAPROXY_DISCOVER="docker" \
-p 80:80 \
-p 443:443 \
-p 1936:1936 \
--network easyhaproxy \
byjg/easy-haproxy
```
Mounting `/var/run/docker.sock` is required so EasyHAProxy can query the Docker API.
## Step 3 — Label your container
```bash
docker run -d \
--label easyhaproxy.http.host=example.org \
--label easyhaproxy.http.port=80 \
--label easyhaproxy.http.localport=8080 \
--network easyhaproxy \
my/image:tag
```
EasyHAProxy detects this container automatically and routes traffic from `example.org:80` to port 8080 in your container. You do not need to expose any container ports.
## Step 4 — Verify
Open `http://example.org` in your browser (or `curl http://example.org`). Traffic should reach your container.
---
## Full options
- [Container label reference](../reference/container-labels.md) — all available labels
- [Environment variable reference](../reference/environment-variables.md) — configure EasyHAProxy behavior
- [SSL certificates](../guides/ssl.md) — add custom TLS
- [ACME / Let's Encrypt](../guides/acme.md) — automatic certificate issuing
----
[Open source ByJG](http://opensource.byjg.com)