コミュニティソリューション

Docker ComposeでCasaOSにRedisを安全にインストールする

A 2023 CasaOS tutorial introduced Redis installation but did not cover current persistence, authentication, or safe network exposure.

CasaOSでRedisを実行する現在最も安全な方法は、永続データボリュームを備え、認証とネットワークへの公開範囲を明示的に設定したDockerコンテナとして実行することです。Redisの現在のデフォルト設定とセキュリティ要件は変化しているため、2023年のフォーラムチュートリアルをデプロイ手順全体として使うには古すぎます。

公式Redisイメージを使用し、ポート6379をLANまたはDockerネットワーク内に限定して、/dataを永続化し、アプリケーションデータを保存する前にAOF/RDBによる永続化が必要かどうかを判断してください。

公式Redisイメージを使用する

最新のRedis Dockerガイドでは、公式のredis:<version>イメージと標準ポート6379について説明しています。

CasaOSでDocker Composeを使用する

services:
  redis:
    image: redis:8
    container_name: redis
    restart: unless-stopped
    command: ["redis-server", "--appendonly", "yes", "--requirepass", "CHANGE_ME"]
    volumes:
      - /DATA/AppData/redis/data:/data
    ports:
      - "127.0.0.1:6379:6379"

パスワードを変更し、別のホストからRedisへの直接アクセスが本当に必要な場合にのみ、バインドアドレスを調整してください。

/dataを永続化する

ホストボリュームを設定しないと、Redisのデータは破棄可能なコンテナレイヤー内に保存され、コンテナの再作成時に失われる可能性があります。/dataを永続性のあるCasaOSストレージにマウントしてください。

永続化モードを慎重に選ぶ

AOFは書き込みを記録して復旧性を高め、RDBスナップショットはより軽量です。アプリケーションによっては、Redisを一時的なキャッシュとして許容できる場合もあります。Redisの用途に合わせて永続化モードを選択してください。

Redisをインターネットに直接公開しない

ポート6379をインターネットに公開転送しないでください。同じDockerホスト上で別のアプリケーションを実行する場合は、両方のコンテナをプライベートDockerネットワークに配置し、サービス名で接続してください。

認証とACLを使用する

家庭で使う場合は単一の requirepass が簡単ですが、現在のRedisはユーザーやコマンドをより細かく設定できるACLにも対応しています。ネットワークから接続できるRedisインスタンスを、認証なしで公開しないでください。

redis-cliからテストする

docker exec -it redis redis-cli -a CHANGE_ME ping

正常なサーバーは PONG を返します。

永続化されたRedisデータをバックアップする

Redisに重要なデータが保存されている場合は、書き込みを停止または調整し、選択したRDB/AOF方式に従って永続ボリュームをバックアップしてください。コンテナの再起動がバックアップと同じだと考えないでください。

DockerデプロイガイドはCasaOSのカスタムアプリにも同様に適用できます。

本番環境で使う前にメモリ制限を確認する

Redisはメモリを優先して使うソフトウェアです。キー数が少ないから使用量も少ないと決めつけず、実際のデータセットサイズとホストのRAMを確認してください。複数のサービスで共有するCasaOSホストでは、アプリケーションがキーの削除にどう反応するかを理解してから、意図的に maxmemory ポリシーを設定することを検討してください。

アプリの依存サービスにはプライベートDockerネットワークを使う

自動化プラットフォームやWebアプリなど、別のコンテナのためだけにRedisを使う場合は、両方のサービスを同じプライベートDockerネットワークに配置し、ホストポートを公開しないでください。アプリケーションはサービス名 redis:6379 で接続できます。

コンテナ再作成後に永続性を確認する

初期設定後にテスト用のキーを書き込み、同じボリュームを使ってコンテナを再作成し、そのキーが引き続き利用できることを確認します。この簡単なテストにより、重要なアプリケーションが依存する前に、ホストパスが実際に永続化されていることを確認できます。

よくある質問

Redisが使用するポートは何番ですか?

デフォルトでは6379番ポートです。

6379番ポートをすべてのインターフェースにマッピングすべきですか?

いいえ。必要な場所だけにバインドし、できればローカルホストかプライベートなDocker/LANパスに限定してください。

Redisのデータはどこに保存すればよいですか?

コンテナの /data ディレクトリを永続化するCasaOSのストレージにマウントします。

RedisInsightは必要ですか?

いいえ。管理用のオプションUIです。Redis自体はなくても動作します。