Cześć
Używam RockyLinux 9.x z zainstalowanym Docker-em. Mój plik docker-compose.yml wygląda mniej więcej tak:
version: "3.9"
services:
service_a:
container_name: service_a
build: ./images/service_a
hostname: service_a
restart: always
environment:
TZ: 'Europe/Warsaw'
networks:
default_network:
ipv4_address: 172.16.238.20
aliases:
- service_a.lan
service_b:
container_name: 'service_b'
build: ./images/service_b
hostname: service_b
restart: always
environment:
TZ: 'Europe/Warsaw'
networks:
default_network:
ipv4_address: 172.16.238.21
aliases:
- service_b.lan
networks:
default_network:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.16.238.0/24
Próbowałem nawiązać komunikacje pomiędzy dwoma kontenerami Docker przez sieć (załóżmy, że połączyłem się z kontenera service_b do kontenera service_a). Podczas analizy ruchu sieciowego (załóżmy, że analiza odbywa się z poziomu kontenera service_a) zauważyłem, że pakiety TCP/IP przychodzące z kontenera service_b do service_a mają adres (172.16.238.1 zamiast 172.16.238.21). Czyli wygląda na to, że zamiast adresu IP kontenera dostaje adres bramy sieciowej. Chciałbym aby oprogramowanie umieszczone w kontenerze service_a miało możliwość rozpoznania (na podstawie adresu IP), który kontener się z nią komunikuje. Dlatego chciałbym aby kontener service_a dostawał pakiety z adresu 172.16.238.21 a nie z adresu 172.16.238.1. Co mogę z tym zrobić?