sql >> データベース >  >> NoSQL >> Redis

docker:MISCONFRedisはRDBスナップショットを保存するように構成されています

    TL; DR あなたのredisは安全ではありません

    更新: portsの代わりにexposeを使用してください そのため、このサービスはリンクされたサービスでのみ利用できます

    ポートをホストマシンに公開せずに公開します。ポートはリンクされたサービスにのみアクセスできます。指定できるのは内部ポートのみです。

    expose
     - 6379
    
    

    元の回答:

    長い答え:

    これは、セキュリティで保護されていないredis-serverが原因である可能性があります 実例。 Dockerコンテナのデフォルトのredisイメージはセキュリティで保護されていません。

    redisに接続できました redis-cli -h <my-server-ip>だけを使用してWebサーバー上で

    これを整理するために、私はこのDigitalOceanの記事と他の多くの記事を調べて、ポートを閉じることができました。

    • ここからデフォルトのredis.confを選択できます
    • 次に、docker-compose redisを更新します セクション(それに応じてファイルパスを更新)
    redis:
        restart: unless-stopped
        image: redis:6.0-alpine
        command: redis-server /usr/local/etc/redis/redis.conf
        env_file:
          - app/.env
        volumes:
          - redis:/data
          - ./app/conf/redis.conf:/usr/local/etc/redis/redis.conf
        ports:
          - "6379:6379"
    

    redis.confへのパス commandで およびvolumes 一致する必要があります

    • 必要に応じてredisまたはすべてのサービスを再構築します
    • redis-cli -h <my-server-ip>を使用してみてください 確認する(私にとっては機能しなくなった)



    1. Redisの概念:メモリ内またはDB内?

    2. Django Rest FrameworkでRedisキャッシュを実装するにはどうすればよいですか?

    3. Redisですべてのデータを削除する方法

    4. MongoDB dropIndexes()