WSL2をインストール
Windows上でDockerを動作させるためには、Docker Desktop for Windowsをインストールし、WSL2を有効にする必要があります。
Powershellを管理者権限で開き
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart mkdir c:\tmp curl https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -o c:\tmp\wls_update_x64.msi msiexec /i c:\tmp\wsl_update_x64.msi /qn /norestart wsl --set-default-version 2
解説
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe を使って、Windowsの機能を有効にします。
“/online” は、オンラインの Windows イメージを操作することを示し、”/enable-feature” は、機能を有効にすることを示しています。
“/featurename” は、有効にする機能の名前を指定するために使用されます。
この場合は “Microsoft-Windows-Subsystem-Linux” という名前の Linux サブシステムです。
“/all” は、この機能に関連するすべてのパッケージをインストールすることを示しています。
最後に、”/norestart” は、コマンドの実行後に再起動しないようにするために使用されます。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
2行目は、1行目と同様に、dism.exe を使って “VirtualMachinePlatform” 機能を有効にするためのコマンドです。
mkdir c:\tmp
3行目は、一時ディレクトリ “c:\tmp” を作成するためのコマンドです。
curl https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -o c:\tmp\wls_update_x64.msi
4行目は、curl コマンドを使用して、wsl_update_x64.msi ファイルをダウンロードしています。
このファイルは、WSL2 をインストールするために必要なファイルです。
“-o” オプションは、出力ファイルの名前と場所を指定します。
msiexec /i c:\tmp\wsl_update_x64.msi /qn /norestart
5行目は、msiexec コマンドを使用して、ダウンロードしたファイルをインストールするためのコマンドです。
“/i” は、インストールを指示し、”/qn” は、進行状況の表示を抑制して非対話型モードでインストールすることを示します。
最後に、”/norestart” は、インストール後に再起動しないようにする指定です。
wsl --set-default-version 2
6行目は、wsl コマンドを使用して、WSL2 をデフォルトバージョンに設定するためのコマンドです。これにより、WSL2 が既定で実行されるようになります。
dockerをインストール
winget install --id Docker.DockerDesktop
ここで一旦PCを再起動させます。
torをインストール
docker run -it -p 8118:8118 -p 9050:9050 -d dperson/torproxy
このDockerコマンドは、dperson/torproxyというDockerイメージを使って、Torプロキシを実行するコンテナを作成します。以下は各オプションの説明です。
docker run
: Dockerコンテナを実行するコマンド-it
: コンテナをインタラクティブなモードで実行するためのオプションです。このオプションを使用すると、コンテナに対話的に入力できます。-p 8118:8118
: ホストOSのポート8118をコンテナのポート8118にマッピングするためのオプションです。これにより、Torプロキシを使用するために必要なHTTPプロキシがホストOS上で使用可能になります。-p 9050:9050
: ホストOSのポート9050をコンテナのポート9050にマッピングするためのオプションです。これにより、Torネットワークにアクセスするために必要なSocksプロキシがホストOS上で使用可能になります。-d
: コンテナをデタッチド(バックグラウンド)モードで実行するためのオプションです。dperson/torproxy
: 実行するDockerイメージの名前です。これは、dperson/torproxyというDocker Hubのリポジトリから取得されます。
このコマンドを実行すると、Torプロキシが実行され、ホストOSのポート8118と9050がコンテナのポート8118と9050にマッピングされます。これにより、ホストOS上のプログラムがTorプロキシを介してインターネットにアクセスできるようになります。
確認
curl -L lil.la/ip
curl -Lx socks5h://localhost:9050 lil.la/ip
curl -Lx localhost:8118 lil.la/ip
curlと呼ばれるコマンドラインツールを使用して、Webサイトlil.laからIPアドレスを取得してみます。
- 最初のコマンド
curl -L lil.la/ip
は、lil.laのWebサイトにHTTP GETリクエストを送信し、WebサイトからIPアドレスを取得します。-L
は、リダイレクトが発生した場合に、リダイレクト先に再度アクセスするオプションです。 - 2番目のコマンド
curl -Lx socks5h://localhost:9050 lil.la/ip
は、Torプロキシを使用してlil.laのWebサイトからIPアドレスを取得します。-x
オプションは、使用するプロキシの種類を指定するためのもので、socks5h://localhost:9050
は、TorのSocks5プロキシを使用することを指定しています。 - 3番目のコマンド
curl -Lx localhost:8118 lil.la/ip
は、Privoxyプロキシを使用してlil.laのWebサイトからIPアドレスを取得します。-x
オプションは、使用するプロキシの種類を指定するためのもので、localhost:8118
は、Privoxyプロキシを使用することを指定しています。
この方法の良い点
Dockerコンテナとイメージを使用してTorを実行することには、以下の利点があります。
- Torのバージョンを気にすることなく、最新のTorが利用可能:Dockerイメージを更新して、最新のTorをインストールできます。コンテナを再作成するだけで、最新のTorが利用可能になります。
- Dockerコンテナとイメージを削除して更新可能:Dockerの特性により、Dockerイメージを削除して、最新バージョンのTorが含まれる新しいイメージをダウンロードして、コンテナを再作成できます。
- Torをサービス化できる:Dockerコンテナを使用すると、Torをサービス化することができます。これにより、異なるアプリケーションでTorを使用することが容易になります。また、複数のコンテナを使用してTorネットワークを構成することもできます。
また、DockerでTorを実行すると、以下の利点があります。
- 環境の標準化:Dockerを使用すると、アプリケーションが異なる環境で動作する場合でも、環境を標準化できます。これにより、アプリケーションが依存する環境に影響を受けずに、同じ動作をすることができます。
- ポータビリティ:Dockerは、コンテナを他の環境に移動することができます。これにより、開発やテスト、本番環境など、異なる環境でコンテナを使用することができます。
- セキュリティ:Dockerコンテナは、他のプロセスと分離された環境で実行されるため、より安全な環境でアプリケーションを実行することができます。
以上のように、Dockerを使用してTorを実行することで、Torの最新バージョンを容易に利用でき、サービス化することができます。また、Dockerの利点により、環境の標準化、ポータビリティ、セキュリティが向上することが期待されます。
コメント