問題はバインドにあります。次のように設定する必要があります:
bind 0.0.0.0
これにより、redisが設定されます 1つのインターフェース(eth0)を備えたコンテナー化された環境で、使用可能なすべてのインターフェースにバインドします。 )およびループバック(lo )redisは上記の両方にバインドされます。 config fileの他のディレクティブを介してセキュリティ対策を追加することを検討する必要があります またはfirewallsなどの外部ツールを使用する 。このアプローチでは、誰もがあなたのredisに接続できるからです サーバー。
デフォルト設定はbind 127.0.0.1です。 この設定により、redisが発生します ループバックインターフェイスでのみリッスンし、コンテナ内からのみアクセスできます。 (セキュリティのため)
カスタム構成ファイルを使用してredisを実行するには:
sudo docker run -d --name redis-test -p 6379:6379 -v /path/to/redisconf/redis.conf:/redis.conf redis redis-server /redis.conf
次に、redis-toolsを使用してDockerホストで確認します インストール済み:
redis-cli
127.0.0.1:6379>
127.0.0.1:6379> set farhad likes:stackoverflow
OK
127.0.0.1:6379> get farhad
"likes:stackoverflow"
127.0.0.1:6379>
redisに接続することもできます 外部ホストからのコンテナ:
redis-cli -h 'IP-address-of-dockerhost-running-redis-container'