Hi guys quick question say you run a a application on your localhost (example lets say couchdb runing directly on localhost:3434 not in docker).
Now you have a docker container (say caddy, ngnix, etc). Is there a way to allow docker container to acess localhost:3434 WITHOUT using the Host network driver (–net=host)
Have you tried the IP of the host? IIRC that should work.
You have a lot of options: https://docs.docker.com/network/drivers/
What’s specifically the issue with the host driver in this case?
I should elaborate. I want to switch from caddy to authentiks internal reverse proxy. By default authentik uses ports 9000 and 90443 and you have the option to change them to 80 and 443 via docker compose.
Using host mode throws a wrench in the ports and authentik is made of more than one container.
Add this to the service in your docker-compose.yml
extra_hosts:
- host.docker.internal:host-gateway
Example:
services:
redis:
restart: always
container_name: redis
image: redis:7.2-alpine
extra_hosts:
- host.docker.internal:host-gateway
Then you can reach your host from inside the container via host.docker.internal:3434
host.docker.internal
is like your “localhost” on the host. It is a special DNS name.
Put them on the same network