記事一覧
Cloudflare Tunnel 構築(前編)
Cloudflare Tunnel 構築(後編)
Cloudflare Tunnel クライアントの自動起動
Cloudflare Tunnel クライアントの更新
------------------------------------------------
Cloudflare Tunnel クライアントは定期的にバージョンアップされます。
最新版はCloudflareの公式リリースノートやGitHubリポジトリで確認できます。特に支障がなければ、セキュリティの向上や新機能の利用、パフォーマンス改善のためにバージョンアップした方が良いでしょう。
参考: Cloudflare Tunnel (cloudflared) リリースノート
バージョンアップ手順
Docker 環境で cloudflared
クライアントをバージョンアップする場合、現在稼働しているコンテナを停止し、古いイメージを削除して、新しいバージョンのイメージをダウンロードし、新しいコンテナを起動する手順が必要です。
cloudflared
サービスのユニットファイルに ExecStopPost=/usr/bin/docker rm cloudflare-d
のような設定がされている場合、コンテナの削除はサービス停止時に自動で行われます。 そのため、手動でコンテナを削除するコマンドは不要です。
作業の流れは次の通りです。
① cloudflared サービスの停止
② 現在のコンテナイメージの削除
③ cloudflared サービスの開始
① cloudflared サービスの停止
サービス管理システム(systemd)用の ユニットファイル を指定して、cloudflared サービスを停止します。
$ sudo systemctl stop cloudflared.service
② 現在のコンテナイメージの削除
現在のイメージ名を docker images
で確認してください。
$ docker images
:(省略)
cloudflare/cloudflared latest
:(省略)
docker rmi
コマンドで、確認したイメージを削除します。
$ docker rmi cloudflare/cloudflared
Untagged: cloudflare/cloudflared:latest
Untagged: cloudflare/cloudflared@sha256:522827fe...
Deleted: sha256:a188299885...
:(省略)
Deleted: sha256:b7f712dabf...
③ cloudflared サービスの開始
サービス管理システム(systemd)で cloudflared サービスを開始します。
新しいコンテナイメージがダウンロードされた後、サービスが開始されます。
$ sudo systemctl start cloudflared.service
status
オプションで、サービスの状態を確認します。
active (running)
と表示されていれば成功です。
$ sudo systemctl status cloudflared.service
● cloudflared.service - Cloudflare Tunnel Client
Loaded: loaded (/etc/systemd/system/cloudflared.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-07-21 22:28:52 JST; 48s ago
Main PID: 54529 (docker)
Tasks: 9 (limit: 18717)
Memory: 8.8M (peak: 9.1M)
CPU: 51ms
CGroup: /system.slice/cloudflared.service
└─54529 /usr/bin/docker run --name cloudflare-d --network=host cloudflare/cloudflared:latest tunnel --no-autoupda>
トラブルシューティング
もしバージョンアップ中に予期せぬ問題が発生した場合は、以下の点を確認してください。
-
サービスの状態を確認する:
sudo systemctl status cloudflared.service
コマンドで、サービスがどのような状態にあるか確認します。エラーメッセージが表示されている場合は、その内容を参考に原因を特定します。
-
Dockerコンテナの状態を確認する:
docker ps -a
コマンドで、cloudflare-d
コンテナが存在するか、どのような状態にあるかを確認します。もしコンテナが残っていて、かつExecStopPost
が機能していないようであれば、手動でsudo docker rm cloudflare-d
を試してみてください。
-
ログを確認する:
sudo journalctl -u cloudflared.service
コマンドで、cloudflared
サービスのログを確認します。エラーの詳細や、なぜサービスが起動しないのかの手がかりが得られることがあります。
終わりに
とても簡単にバージョンアップが完了しました。
Docker コンテナを使うメリットが十分に発揮されたのではないでしょうか。
インストール・アンインストール・バージョンアップ のすべてが簡単なので、今後も Docker 環境にはお世話になりそうです。