Ich versuche, Containern eine statische IP-Adresse bereitzustellen. Ich verstehe, dass ich ein benutzerdefiniertes Netzwerk erstellen muss. Ich erstelle es und die Bridge-Schnittstelle ist auf dem Host-Computer (Ubuntu 16.x) aktiv. Die Container erhalten IP von diesem Subnetz, aber nicht die von mir bereitgestellte statische.
Hier ist meine 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
Die Container erhalten 10.5.0.2 und 10.5.0.3 anstelle von 5 und 6.
docker
docker-compose
chenchuk
quelle
quelle
Antworten:
Beachten Sie, dass ich keine feste IP für Container in Docker empfehle, es sei denn, Sie tun etwas, das das Routing von außen nach innen in Ihr Containernetzwerk ermöglicht (z. B. Macvlan). DNS ist bereits für die Diensterkennung innerhalb des Containernetzwerks vorhanden und unterstützt die Containerskalierung. Außerhalb des Containernetzwerks sollten Sie exponierte Ports auf dem Host verwenden. Mit diesem Haftungsausschluss ist hier die gewünschte Erstellungsdatei:
quelle
Ich hatte einige Probleme mit einer Umgebungsvariablen mit benutzerdefiniertem Namen (nicht mit Containername / Portkonvention für KAPACITOR_BASE_URL und KAPACITOR_ALERTS_ENDPOINT). Wenn wir in diesem Fall den Namen des Dienstes angeben, wird die IP-Adresse nicht als aufgelöst
Oben
http://[**kapacitor**]:9092
würde sich nicht auflösenhttp://172.20.0.2:9092
Ich habe die Probleme mit statischen IPs mithilfe von Subnetzkonfigurationen behoben.
quelle