概要
DockerでTorrentクライアントを動かすとWindows Defenderに消されずにすみます。
背景
ひさしぶりにUbuntuのisoをダウンロードしようとTorrentクライアント(uTorrent)を起動したところ、Windows Defenderに消されていました。
新しいソフトを探すのもWindows Defenderを切るのもいやなのでDockerコンテナで動かすことにしました。
やりかた
軽量LinuxのAlpineにTransmissionというTorrentクライアントをインストールします。
Dockerは事前にインストールしておいてください。
適当な作業フォルダを作り、コマンドプロンプトで作業フォルダに移動します。
次のDockerfileを作成します。
FROM alpine:latest
ARG config_dir="/root/.config/transmission-daemon"
ARG settings_file="$config_dir/settings.json"
RUN apk --update add transmission-daemon && \
rm -rf /var/cache/apk/*
# dump-settings option will be output to standard error.
RUN /usr/bin/transmission-daemon --dump-settings 2> "/root/settings.json"
# Creating the 'config' directory in advance causes, the 'dump-settings' option output NULL.
# Because transmission to attempt to read the empty config directory.
RUN mkdir /torrent && \
chmod 666 /torrent && \
mkdir -p $config_dir && \
chmod 666 $config_dir && \
mv /root/settings.json $settings_file
RUN sed -i 's/"rpc-whitelist-enabled": [^,]*/"rpc-whitelist-enabled": false/' $settings_file && \
sed -i 's/"rpc-host-whitelist-enabled": [^,]*/"rpc-host-whitelist-enabled": false/' $settings_file && \
sed -i 's/"download-dir": [^,]*/"download-dir": "\/torrent"/' $settings_file && \
sed -i 's/"incomplete-dir": [^,]*/"download-dir": "\/torrent"/' $settings_file && \
sed -i 's/"speed-limit-up": [^,]*/"speed-limit-up": 100/' $settings_file && \
sed -i 's/"speed-limit-up-enabled": [^,]*/"speed-limit-up-enabled": true/' $settings_file && \
sed -i 's/"upload-slots-per-torrent": [^,]*/"upload-slots-per-torrent": 0/' $settings_file
EXPOSE 9091
ENTRYPOINT /usr/bin/transmission-daemon --foregroundDockerイメージをビルドします。
docker build -t transmission .動作確認
Transmissionコンテナを立ち上げます。
docker run --rm -d -v <ファイルを保存するディレクトリ>:/torrent -p 9091:9091 transmissionブラウザからリダイレクトしたポート(localhost:9091)にアクセスします。

アクセスできました。

左上のフォルダアイコンからtorrentファイルを追加できます。

おまけ
Transmissionにアクセスすると403エラーになる
「403: Forbidden」と表示される場合はwhitelistのせいのようです。
この記事ではsettings.jsonの方で無効にしていますが、以下のように書く方法もあります。(Downloadディレクトリの指定も同様)
ENTRYPOINT /usr/bin/transmission-daemon --foreground -a *.*.*.*コンテナが即終了する
Dockerではフォアグラウンドで動いているプロセスが無いと即終了するようでforegroundオプションを付けています。
ENTRYPOINT /usr/bin/transmission-daemon --foregroundダウンロードが遅い
アップロードを止めようと”speed-limit-up”を0にすると、ダウンロードも遅くなっている気がしたので100にしています。(torrentってそういうもの?)
Web Interfaceの右にあるメニューアイコンから速度は変更できます。
0にしたい場合はsettngs.jsonから変更する必要があります。

コメント