Problemet er med din binding. Du skal indstille følgende:
bind 0.0.0.0
Dette vil indstille redis
at binde til alle tilgængelige grænseflader i et containeriseret miljø med én grænseflade, (eth0
) og en loopback (lo
) redis vil binde til begge ovenstående. Du bør overveje at tilføje sikkerhedsforanstaltninger via andre direktiver i config file
eller ved at bruge eksterne værktøjer som firewalls
. fordi med denne tilgang kan alle oprette forbindelse til din redis
server.
Standardindstillingen er bind 127.0.0.1
og denne indstilling vil forårsage redis
til kun at lytte på loopback-grænsefladen, og den vil kun være tilgængelig inde fra containeren. (af hensyn til sikkerheden)
Sådan kører du Redis med tilpasset konfigurationsfil:
sudo docker run -d --name redis-test -p 6379:6379 -v /path/to/redisconf/redis.conf:/redis.conf redis redis-server /redis.conf
Nu skal du verificere på docker-vært med redis-tools
installeret:
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>
Du kan også oprette forbindelse til din redis
container fra en ekstern vært via:
redis-cli -h 'IP-address-of-dockerhost-running-redis-container'