Próbuję podać statyczny adres IP do kontenerów. Rozumiem, że muszę stworzyć własną sieć. Tworzę go, a interfejs mostka działa na komputerze hosta (Ubuntu 16.x). Kontenery otrzymują adres IP z tej podsieci, ale nie statyczny, który podałem.
Oto mój docker-compose.yml:
version: '2'
services:
mysql:
container_name: mysql
image: mysql:latest
restart: always
environment:
- MYSQL_ROOT_PASSWORD=root
ports:
- "3306:3306"
networks:
- vpcbr
apigw-tomcat:
container_name: apigw-tomcat
build: tomcat/.
ports:
- "8080:8080"
- "8009:8009"
networks:
- vpcbr
depends_on:
- mysql
networks:
vpcbr:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
gateway: 10.5.0.1
aux_addresses:
mysql: 10.5.0.5
apigw-tomcat: 10.5.0.6
Kontenery otrzymają 10.5.0.2 i 10.5.0.3, zamiast 5 i 6.
docker
docker-compose
chenchuk
źródło
źródło
Odpowiedzi:
Zwróć uwagę, że nie polecam stałego adresu IP dla kontenerów w Dockerze, chyba że robisz coś, co umożliwia routing z zewnątrz do wnętrza twojej sieci kontenerowej (np. Macvlan). Usługa DNS jest już dostępna do wykrywania usług w sieci kontenerów i obsługuje skalowanie kontenerów. Poza siecią kontenerów należy używać odsłoniętych portów na hoście. Z tym zastrzeżeniem, oto żądany plik redagowania:
źródło
Miałem pewne trudności ze zmienną środowiskową, która ma niestandardową nazwę (nie z konwencją nazwy kontenera / portu dla KAPACITOR_BASE_URL i KAPACITOR_ALERTS_ENDPOINT). Jeśli podamy nazwę usługi w tym przypadku, adres IP nie zostanie rozwiązany jako
W powyższym
http://[**kapacitor**]:9092
nie postanowiłemhttp://172.20.0.2:9092
Rozwiązałem problemy ze statycznymi adresami IP za pomocą konfiguracji podsieci.
źródło