Saya mencoba memberikan alamat IP statis ke container. Saya memahami bahwa saya harus membuat jaringan khusus. Saya membuatnya dan antarmuka jembatan di mesin host (Ubuntu 16.x). Kontainer mendapatkan IP dari subnet ini tetapi bukan statis yang saya berikan.
Berikut adalah docker-compose.yml saya:
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
Kontainer mendapatkan 10.5.0.2 dan 10.5.0.3, bukan 5 dan 6.
docker
docker-compose
chenchuk
sumber
sumber
Jawaban:
Perhatikan bahwa saya tidak merekomendasikan IP tetap untuk kontainer di Docker kecuali Anda melakukan sesuatu yang memungkinkan perutean dari luar ke dalam jaringan kontainer Anda (misalnya macvlan). DNS sudah ada untuk penemuan layanan di dalam jaringan kontainer dan mendukung penskalaan kontainer. Dan di luar jaringan kontainer, Anda harus menggunakan port yang terbuka pada host. Dengan penafian itu, inilah file tulis yang Anda inginkan:
sumber
Saya menghadapi beberapa kesulitan dengan variabel lingkungan dengan nama khusus (bukan dengan nama penampung / konvensi port untuk KAPACITOR_BASE_URL dan KAPACITOR_ALERTS_ENDPOINT). Jika kami memberikan nama layanan dalam hal ini itu tidak akan menyelesaikan ip sebagai
Di atas
http://[**kapacitor**]:9092
tidak akan memutuskan untukhttp://172.20.0.2:9092
Saya menyelesaikan masalah IP statis menggunakan konfigurasi subnetting.
sumber