Het routeren tussen meerdere Docker-containers wordt meestal bereikt door het gebruik van Docker-netwerken en aangepaste netwerkconfiguraties. Hier zijn de verschillende manieren om het te doen:
1. Docker-links: Dit is een verouderde methode, maar vroeger was het mogelijk om containers te verbinden met behulp van —link in het opdrachtregelargument. Dit is nu vervangen door het gebruik van netwerken.
1. Docker-netwerken: Docker stelt u in staat om aangepaste netwerken te maken waar uw containers in kunnen draaien. Hiermee kun je containers op hetzelfde netwerk laten communiceren.
Aanmaken van een netwerk: docker network create my\_network Toewijzen van een container naar een netwerk bij het opstarten: docker run —network=my_network -itd —name=my_container my\_image1. Docker-compose: Dit is een tool om meerdere Docker-containers te definiëren en te draaien met een eenvoudig YAML-bestand. Met Docker-compose kunt u voor elk van uw services netwerken definiëren en de routering tussen uw services regelen.
Het gebruik van omgevingsvariabelen en DNS-namen wordt aanbevolen door Docker voor inter-containercommunicatie. Bij het aansluiten van containers, kan de broncontainer verwijzingen naar de doelcontainer in zijn /etc/hosts-bestand krijgen, of door DNS-resolver als ze op hetzelfde netwerk draaien.
Hier is een voorbeeld van een docker-compose.yml-bestand met netwerkconfiguratie:
```
version: ‘3‘
services:
web:
build: .
ports:
– “5000:5000“
networks:
– mynet
redis:
image: “redis:alpine“
networks:
– mynet
networks:
mynet:
```
In dit voorbeeld draaien de web en redis diensten in hetzelfde netwerk (mynet). Ze kunnen met elkaar communiceren door hun dienstnaam (b.v., web of redis) te gebruiken als de hostnaam.