Skip to content

dgholz/docker-transmission

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 

Repository files navigation

docker-transmission

Transmission daemon running in a container. The default paths have been altered to:

  • /transmission/download
  • /transmission/incomplete
  • /transmission/watch
  • /transmission/config

transmission-daemon runs as root, with the HTTP RPC interface listening on TCP port 9091, and the BitTorrent transfer port listening on TCP & UDP 51413. The HTTP RPC interface is configured to not use authentication, and allows connections from all private IP ranges:

  • 127.0.0.0/8
  • 10.0.0.0/8
  • 192.168.0.0/16
  • 169.254.0.0/16
  • 172.16.0.0/22

Quick-start

docker run --daemon --volume /where/to/save/downloads:/transmission/download --port 9091:9091 --port 51413:51413 --port 51413:51413/udp --name transmission dgholz/docker-transmission

Then open http://docker_host:9091/transmission/web/ in a browser.

I want to run the HTTP RPC interface on a different port

Easy! Just change the port mapping given to docker run; e.g. to listen on port 8080:

docker run --port 8080:9091 dgholz/docker-transmission

I want Transmission to use a different port for BitTorrent

A bit tougher; run the image and map the new port from host to the container, and configure transmission to use the new port:

docker run --port 12345:12345 dgholz/docker-transmission

Then configure Transmission to use the new port either via its web interface, or in a config file (see below).

I want the downloaded files to be owned by a different user

Run the container as that user. You must share the host's /etc/passwd with this container & pass the --user flag to docker run:

docker run --volume /etc/passwd:/etc/passwd:ro --user host_tranmission_user dgholz/transmission-daemon

I set portmap: true in config but the port is still closed! What gives?

Transmission sends out a NAT-PMP (uPNP) packet to your router, asking it to forward connection to some port back to the same port at the address Tranmission is running on. Docker created a private internal network for your container, and NATs the traffic through the host Docker is running on. Docker doesn't understand the uPNP packet, and isn't allowed to forward it, so it gets dropped.

Solutions:

  1. use --net=host so Docker does not set up NATting of the traffic from the container
  2. statically forward port 51413 TCP & UDP to the docker host from your router
  3. teach Docker how to handle uPNP (hard)

Your chosen settings for Transmission are weird and I want to specify my own

Transmission will save its settings when it quits; if you volume-mount its config directory, you can get a copy:

mkdir transmission-config
docker run --interactive=true --tty=true --rm=true --volume $(pwd)/transmission-config:/transmission/config dgholz/docker-transmission
[... wait for it to initialize ...]
^C
[... wait for it to shut down ...]
cp transmission-config/settings.json transmission-settings.json
rm -rf transmission-config
[... edit the transmission-settings.json file ...]
docker run --volume $(pwd)/transmission-settings.json:/transmission/config/settings.json dgholz/docker-transmission --

How can I see the output from transmission-daemon?

You can attach to a running container:

docker attach --sig-proxy=false $(docker ps | grep transmi | cut -f1 -d' ')

Then Ctrl-C to detach

About

Transmission Daemon Docker Container

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Dockerfile 100.0%