Estoy tratando de proporcionar una dirección IP estática a los contenedores. Entiendo que tengo que crear una red personalizada. Lo creo y la interfaz del puente está activa en la máquina host (Ubuntu 16.x). Los contenedores obtienen la IP de esta subred pero no la estática que proporcioné.
Aquí está mi 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
Los contenedores obtienen 10.5.0.2 y 10.5.0.3, en lugar de 5 y 6.
docker
docker-compose
chenchuk
fuente
fuente
Respuestas:
Tenga en cuenta que no recomiendo una IP fija para los contenedores en Docker a menos que esté haciendo algo que permita el enrutamiento desde el exterior hacia el interior de su red de contenedores (por ejemplo, macvlan). DNS ya está disponible para el descubrimiento de servicios dentro de la red de contenedores y admite el escalado de contenedores. Y fuera de la red de contenedores, debe usar puertos expuestos en el host. Con ese descargo de responsabilidad, aquí está el archivo de redacción que desea:
fuente
Estaba enfrentando algunas dificultades con una variable de entorno que tiene un nombre personalizado (no con la convención de puerto / nombre de contenedor para KAPACITOR_BASE_URL y KAPACITOR_ALERTS_ENDPOINT). Si damos el nombre del servicio en este caso, no resolvería la ip como
En lo anterior
http://[**kapacitor**]:9092
no resolveríahttp://172.20.0.2:9092
Resolví los problemas de IP estáticas usando configuraciones de subredes.
fuente