W aplikacji flask mam funkcję, która próbuje utworzyć klienta redis
db = redis.Redis(host='localhost', port=6379, decode_responses=True)
Gdy proces kolby działa w kontenerze, localhost
odnosi się do interfejsu sieciowego samego kontenera. Nie łączy się z interfejsem sieciowym hosta dockera.
Musisz więc zastąpić localhost
z adresem IP kontenera z uruchomionym redis.
W kontekście pliku docker-compose.yml jest to łatwe, ponieważ docker-compose sprawi, że nazwy usług będą rozwiązywane na prawidłowy adres IP kontenera:
version: "3"
services:
my_flask_service:
image: ...
my_redis_service:
image: ...
następnie w aplikacji do butelek użyj:
db = redis.Redis(host='my_redis_service', port=6379, decode_responses=True)