я новичок в докере, так что извините, если моя терминология немного неверна. Я нахожусь в процессе запуска моего приложения в докере. Все запускается и работает правильно, но я не могу установить IP-адрес, на котором работают службы. Мне нужно сделать это, так как я делаю вызовы API, которые ранее ссылались на статическую переменную в моем коде js. Служба искры особенно важна для меня, чтобы иметь известный IP-адрес, на данный момент он назначается случайным образом.
докер-compose.yml
version: '3.0' # specify docker-compose version
services:
vue:
build: client
ports:
- "80:80" # specify port mapping
spark:
build: accubrew-spark
ports:
- "8080:8080"
express:
build: server
ports:
- "3000:3000"
links:
- database
database:
image: mongo
ports:
- "27017:27017"```





Вы можете попробовать это:
version: '3.0' # specify docker-compose version
services:
vue:
build: client
ports:
- "80:80" # specify port mapping
spark:
build: accubrew-spark
ports:
- "8080:8080"
networks:
my_net:
ipv4_address: 172.26.0.3
express:
build: server
ports:
- "3000:3000"
links:
- database
database:
image: mongo
ports:
- "27017:27017"
networks:
my_net:
ipam:
driver: default
config:
- subnet: 172.26.0.0/16
Но ваш искровой порт — локальный: 8080, если вам нужно открыть другой порт с ip 172.26.0.0, вы можете сделать - "7077" или с локальным хостом: -"7077:7077" это пример с портом 7077:
version: '3.0' # specify docker-compose version
services:
vue:
build: client
ports:
- "80:80" # specify port mapping
spark:
build: accubrew-spark
ports:
- "8080:8080"
- "7077"
networks:
my_net:
ipv4_address: 172.26.0.3
express:
build: server
ports:
- "3000:3000"
links:
- database
database:
image: mongo
ports:
- "27017:27017"
networks:
my_net:
ipam:
driver: default
config:
- subnet: 172.26.0.0/16
Когда вы запускаете контейнеры с помощью docker-compose, он создает для вас определяемую пользователем сеть, а докер предоставляет встроенные DNS-серверы, каждый контейнер будет иметь запись, разрешимую только внутри контейнеров сети.
Это позволяет вам легко узнать, как связаться с каждой службой, просто позвонив им по имени, которое вы указали в своем docker-compose.yml.