Я потратил ужасно много времени, пытаясь отладить это. У меня уже есть заполненный файл docker compose с несколькими работающими контейнерами в одной сети. Контейнеры состоят из сервера tomcat9 (Сервер A), контейнера hazelcast и контейнера hazelcast-mancenter, а затем сервера apache. Я хочу представить дополнительный контейнер, который представляет собой сервер tomcat7 (сервер B), и по какой-то причине он мешает исходному серверу tomcat (сервер A). Сервер A никогда не переходит в состояние запуска, когда работает контейнер сервера B.
Когда сервер B выключен, сервер A работает без проблем (после перезапуска). В тот момент, когда сервер B включается, сервер A отключается.
По какой-то причине сервер B также пытается подключиться к Hazelcast или влияет на него. Даже если я отключу сервер B от сети, как и другие контейнеры, помехи все равно есть. Я уверен, что сервер B не пытается подключиться к исходному контейнеру Hazelcast.
Что происходит? Разве контейнер не должен быть изолирован?
docker -compose.yml
version: '3.7'
services:
server_a_tomcat:
container_name: server_a_tomcat
image: server_a:latest
ports:
- "8080:8080"
- "5005:5005"
networks:
- network_a
depends_on:
- server_a_mountebank_local
volumes:
- …/java-config
- …/server_a_tomcat.war
- data-volume:/usr/local/ssl
environment:
- …
server_a_mountebank_local:
container_name: server_a_mountebank_local
image: mountebank:latest
volumes:
- …
networks:
- network_a
ports:
- "8083:8083"
apache_local:
container_name: apache_local
image: apache_local:latest
ports:
- "80:80"
- "8055:8055"
depends_on:
- server_a_local
volumes:
- …/httpd.conf
- …/extra-httpd.conf
- …
- data-volume:/usr/local/ssl
networks:
- network_a
stdin_open: true
tty: true
hazelcast_local:
container_name: hazelcast_local
image: hazelcast_local:latest
ports:
- 11415:5701
depends_on:
- mancenter_local
mancenter_local:
container_name: mancenter_local
image: mancenter_local:latest
environment:
- HAZELCAST_IP={{ container_private_ip }}
- JAVA_OPTS=-Dhazelcast.mc.rest.enabled=true
ports:
- 8100:8080
networks:
- network_a
server_b_tomcat:
container_name: server_b_tomcat
build:
context: '.'
dockerfile: 'Dockerfile-server_b_tomcat’
ports:
- "9090:8080"
- "5015:5005"
environment:
- ...
networks:
- network_b
depends_on:
- redis
redis:
container_name: redis
image: redis:5.0.5
ports:
- "6379:6379"
networks:
- network_b
networks:
network_b:
driver: bridge
name: network_b
network_a:
driver: bridge
name: network_a
volumes:
data-volume: