Skip to content

leplusorg/docker-tor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TOR

Run TOR conveniently from a docker container.

Dockerfile Docker Build Docker Stars Docker Pulls Docker Version

Usage

The simplest way to launch a TOR proxy using this container is to use the following command:

docker run --rm -p 9050:9050 leplusorg/tor

If you need to ovverride the default torrc file, you can mount your version this way:

docker run --rm -p 9050:9050 -v /local/path/to/your/torrc:/etc/torrc leplusorg/tor

Once the docker container has finished starting, you can test it with the following command:

curl --socks5 localhost:9050 --socks5-hostname localhost:9050 https://check.torproject.org/api/ip

Configuration

The configuration file used by Tor in this container is /et/tor/torrc but it is generated on startup by the script tor-wrapper.sh using the torrc.template file. The file is based on the torrc.sample configuration that comes with Tor. But some configuration options have been made configurable using OS environment variables. You can set a custom value for these variables for example using the -e option of Docker. Below are the variables currently available:

Variable name Usage Default
DATA_DIRECTORY The data directory. /var/lib/tor
LOG_LEVEL The logging level. notice
LOG_FILE The log file or device. stdout
SOCKS_HOSTNAME The SOCKS hostname. 127.0.0.0.1
SOCKS_PORT The SOCKS port. 9150
TORRC_APPEND A block of configuration appended at the end of the torrc file.

Note that the defaults are the same as Tor's default if the configuration option is not set.

You can use the -m option of Docker to mount a custom template in the image at /etc/tor/torrc.template. The templating engine (envsubst) will only replace specific environment variables in the template. These are controlled by the environment variable SHELL_FORMAT (the default list is ${DATA_DIRECTORY},${LOG_LEVEL},${LOG_FILE},${SOCKS_HOSTNAME},${SOCKS_PORT}). If you create a custom template with extra variables in it, you can set your own list using the environment variable SHELL_FORMAT or you can just append the extra variables to the existing list using the environment variable SHELL_FORMAT_EXTRA. Be careful to escape the $ characters since you don't want them to be interpolated when defining SHELL_FORMAT or SHELL_FORMAT_EXTRA.

The out-of-the-box torrc.template also loads any file in the /etc/tor/torrc.d/ directory with the .conf extension so you can mount your custom torrc configuration file(s) there. This is similar to the TORRC_APPEND environment variable but using files instead.

For troubleshooting, you can enable verbose logging by setting the value of environment variable DEBUG to true.

Request configuration change

Please use this link (GitHub account required) to suggest a change in this image configuration or to expose a new Tor configuration option.