Docker container of the Tor network proxy daemon.
- Provides SOCKSv5 and HTTPS proxy access.
- Supports relay, exit node, bridge, and hidden service modes through custom configuration.
- Includes an extensive healthcheck, plus monitoring via Nyx and pluggable transport support via Lyrebird.
- Lightweight Alpine-based image.
services:
tor:
image: dockurr/tor
container_name: tor
ports:
- 9050:9050
- 8118:8118
restart: alwaysdocker run -it --rm --name tor -p 9050:9050 -p 8118:8118 docker.io/dockurr/torThe SOCKSv5 proxy is available on port 9050, and the HTTPS proxy is available on port 8118.
Environment variables:
-
PASSWORD- Password for the Tor control port (default: "password")- Only used inside the container by the healthcheck. Change it if you plan to expose the control port (9051).
-
CHECK- Enable external health checks (default: "false")- Set to "true" to also monitor the node status via external services like https://check.torproject.org/ and Onionoo.
-
DEBUG- Enable debug output (default: "false")- Shows raw Tor Control Protocol responses.
Advanced configuration:
You can provide a custom Tor configuration file to the container via a torrc file in /etc/tor, with your own relay, exit node, bridge, or hidden service settings.
Mount the following directories in your compose file:
volumes:
- ./config:/etc/tor
- ./data:/var/lib/torand place the custom torrc file in your ./config directory, for example:
# Your relay configuration
Nickname MyTorRelay
ContactInfo [email protected]
ORPort 9001
DirPort 9030
ExitRelay 0
ExitPolicy reject *:*The /var/lib/tor directory contains Tor state and identity data. Persisting it is optional for simple proxy usage, but strongly recommended for relays and bridges because it preserves the relay identity and fingerprint.
