TailscaleをDockerで使う手順と設定のポイント

Tailscaleは、簡単かつセキュアにプライベートVPNネットワークを構築できる人気のツールです。

通常は物理端末や仮想マシンに導入して使いますが、Docker環境でもTailscaleを活用することが可能です。

この記事では、Dockerコンテナ上でTailscaleを動作させる方法や、他のコンテナと連携するためのネットワーク設定のポイントをわかりやすく解説します。

「Tailscaleでリモートからコンテナにアクセスしたい」「Exit Nodeを軽量に構築したい」といったニーズに応える内容となっており、DockerユーザーにもVPNを活用した柔軟なネットワーク構成が実現できます。

TailscaleをDockerで使う2つのパターン

Tailscaleは通常、ホストOSにインストールして使うことが多いですが、Docker環境に導入することで、より柔軟で隔離されたVPN活用が可能になります。

TailscaleをDockerで使うには、以下の2つの主要な構成パターンがあります。

項目 パターン1
単体のTailscaleコンテナとして起動
パターン2
アプリコンテナにTailscaleを組み込み
概要 Tailscale専用のコンテナを立ててVPN接続を中継 アプリコンテナ内にTailscaleを組み込む
起動のしやすさ ◎(公式イメージあり、コマンド1行) △(Dockerfile作成とマルチプロセス対応が必要)
他コンテナとの連携 ◎(--network container:で共有可能) △(単体アプリ用途に最適)
セキュリティ分離 ◎(VPNとアプリを別々に管理可能) △(VPNとアプリが同一コンテナ内)
再利用性 ◎(1つのTailscaleで複数アプリに共有可) △(アプリごとに個別導入が必要)
Exit Node構成 ◎(軽量VPNゲートウェイとして最適) △(Exit Node化には工夫が必要)
ホスト改変なし ◎(ホストを汚さず導入可能) ◎(同じくコンテナ完結)
主な用途 – Exit Node構築
– 他コンテナの中継
– リモートVPNゲートウェイ
– Tailscale経由でWebアプリやAPIを直接提供
– シンプルなVPN付きツール化

パターン1:単体のTailscaleコンテナとして起動

「Tailscaleだけをコンテナで動かす」という構成は、次のような用途に最適です。

  • 軽量なVPNゲートウェイ(Exit Node)をDockerで構築したい

  • ホストにTailscaleを直接インストールせずに、ネットワーク機能を利用したい

  • 他のアプリコンテナとネットワークを共有し、安全なリモート接続をしたい

以下に、実際のコマンドと必要な設定ポイントを詳しく解説します。

必要な条件

  • Linuxホスト(※--network host はLinux限定)

  • Dockerがインストールされていること

  • /dev/net/tun が有効(TUNデバイスを使用)

ステップ1:Tailscaleコンテナを起動

以下の docker run コマンドで、Tailscale専用コンテナをバックグラウンド起動します。

docker run -d \
–name tailscale \
–cap-add=NET_ADMIN \
–cap-add=NET_RAW \
–network host \
–device /dev/net/tun \
-v /var/lib/tailscale:/var/lib/tailscale \
tailscale/tailscale \
tailscaled
オプション 意味
--cap-add=NET_ADMIN ネットワーク構成を変更する権限(VPNで必須)
--network host ホストのネットワークをそのまま使う
--device /dev/net/tun Tailscaleが必要とする仮想ネットワークデバイス
-v /var/lib/tailscale 状態・ログイン情報を永続化(再起動してもログイン状態維持)
tailscaled バックグラウンドでTailscaleデーモンを実行

ステップ2:Tailscaleネットワークに参加(認証)

コンテナ起動後、以下のコマンドで Tailscale にログインします。

docker exec -it tailscale tailscale up

実行すると、CLI にログイン用のURLが表示されるので、Webブラウザで開いてGoogleやGitHubアカウントで認証します。

ログインが完了すれば、このコンテナが Tailscale ネットワークの1台として参加します。

ステップ3:接続確認

コンテナ内で IP を確認

docker exec tailscale tailscale ip

他の端末から ping <Tailscale IP> を実行すれば、接続が確認できます。

また、必要に応じてこのコンテナと他のアプリケーションコンテナをネットワーク共有することも可能です(--network container:tailscale)。

ステップ4(任意):Exit Nodeとして構成する

このTailscaleコンテナを Exit Node(インターネット出口) にしたい場合は、次のコマンドを実行します。

docker exec tailscale tailscale up –advertise-exit-node

他のTailscale端末からこのノードを選択すれば、VPNのように使えます。

パターン2:アプリコンテナにTailscaleを組み込み

アプリとTailscaleを1つのDockerコンテナにまとめる構成は、VPNを通じて限定公開したいアプリケーションに最適です。

たとえば、社内用のWebサービスや個人ツール、APIサーバーなどをTailscale経由のみでセキュアに公開したい場合に、軽量かつ構成がシンプルなこの方法が有効です。

この構成の特徴

  • 1つのコンテナだけでアプリ+VPNが完結

  • 外部公開せず、Tailscaleネットワーク内からのみアクセス可能

  • VPSやエッジデバイス、開発用サーバーにも最適

  • 公開用ポートを開けずに安全にサービス運用が可能

実装例:Tailscale + nginxを統合したDockerfile

以下は、nginxをTailscale越しに提供するシンプルな構成例です。

FROM ubuntu:22.04

# 基本パッケージのインストール
RUN apt update && \
apt install -y curl iproute2 iptables nginx gnupg2 lsb-release

# Tailscaleインストール
RUN curl -fsSL https://tailscale.com/install.sh | sh

# デーモン起動用スクリプト
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

EXPOSE 80
CMD [“/entrypoint.sh”]

entrypoint.sh(Tailscaleとnginxを同時起動)

#!/bin/bash

# Tailscaled 起動(バックグラウンド)
tailscaled &

# 認証済みの場合はスキップ、未ログインならログイン(手動 or プリオーセンティケートキー)
tailscale up –authkey=${TAILSCALE_AUTHKEY:-} –hostname=my-nginx

# nginx起動
nginx -g “daemon off;”

docker run 実行例(TAILSCALE_AUTHKEYを使う)

docker run -d \
–cap-add=NET_ADMIN \
–cap-add=NET_RAW \
–device /dev/net/tun \
-e TAILSCALE_AUTHKEY=tskey-xxxxxxxxxxxxxxxx \
-p 80:80 \
my-nginx-tailscale

※ 認証キー(authkey)は Tailscale 管理画面の「Keys」セクションから取得可能。権限付き・有効期限付きで発行できます。

主な用途

利用シーン 解説
社内ツールのVPN限定公開 開発環境や管理ツールをTailscale内だけでアクセス可能にする
IoT・ラズパイ用途 公開不要なWebUIやAPIを安全にVPN経由で接続
単一アプリでVPN込みの再配布 他人に配布しても勝手にVPN付きで動作するアプリを作れる
フルリモート開発 外出先からVPN経由で自分のアプリに接続できる構成を簡単に構築可能

注意点とコツ

注意点 対処法
コンテナ内で複数プロセスを動かす必要がある entrypoint.shsupervisord で制御
TUN デバイスが必要 --device /dev/net/tun を指定(Linuxホスト限定)
認証が手動だと不便 TAILSCALE_AUTHKEY を使えば自動ログイン可能
コンテナ削除で状態が消える -v /var/lib/tailscale をマウントして永続化可能

まとめ

Docker上でTailscaleを動かすことで、柔軟かつセキュアなネットワーク構成が可能になります。特に次のような場面で非常に便利です:

  • 軽量なVPN Gateway(Exit Node)をコンテナ化したい

  • ホストに影響を与えずTailscaleを試したい

  • コンテナ単位でリモートアクセスを制御したい

Tailscale × Docker は開発環境から本番運用まで幅広く活用できる組み合わせです。ぜひ構築して、その便利さを体感してみてください。

No.1

NordVPN

世界で1,400万人以上のユーザー数!信頼・安心のVPN

30日間の返金保証

No.2

ExpressVPN

世界中どこからでも安定&高速!シンプルで使いやすいVPN

30日間の返金保証

No.3

CyberGhost

世界100カ国に11,724台以上!安くてコスパ抜群のVPN

45日間の返金保証