Het probleem ligt bij uw binding. U moet het volgende instellen:
bind 0.0.0.0
Hiermee wordt redis
. ingesteld om te binden aan alle beschikbare interfaces, in een gecontaineriseerde omgeving met één interface, (eth0
) en een loopback (lo
) redis bindt aan beide bovenstaande. U zou moeten overwegen om beveiligingsmaatregelen toe te voegen via andere richtlijnen in config file
of met behulp van externe tools zoals firewalls
. omdat met deze aanpak iedereen verbinding kan maken met uw redis
server.
De standaardinstelling is bind 127.0.0.1
en deze instelling veroorzaakt redis
om alleen te luisteren op de loopback-interface, en het is alleen toegankelijk vanuit de container. (voor beveiliging)
Redis uitvoeren met aangepast configuratiebestand:
sudo docker run -d --name redis-test -p 6379:6379 -v /path/to/redisconf/redis.conf:/redis.conf redis redis-server /redis.conf
Nu verifiëren op docker-host met redis-tools
geïnstalleerd:
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>
U kunt ook verbinding maken met uw redis
container van een externe host via:
redis-cli -h 'IP-address-of-dockerhost-running-redis-container'