Dat is alles over Docker-netwerken. Snelle oplossing - gebruik host
netwerkmodus voor beide containers. Nadeel is lage isolatie, maar je krijgt het snel werkend:
docker run -d --network=host redis ...
docker run --network=host python-redis-py ...
Om vervolgens verbinding te maken vanaf python
naar redis
gebruik gewoon localhost
als hostnaam.
Een betere oplossing is om het door de gebruiker gedefinieerde brugnetwerk van Docker te gebruiken
# create network
docker network create foo
docker run -d --network=foo --name my-db redis ...
docker run --network=foo python-redis-py ...
Merk op dat u in dit geval niet kunt gebruik localhost
maar gebruik in plaats daarvan my-db
als hostnaam. Daarom heb ik --name my-db
. gebruikt parameter bij het starten van de eerste container. In door de gebruiker gedefinieerde bridge-netwerken bereiken containers elkaar bij hun naam.