Введение нового контейнера в среду docker мешает другим контейнерам - PullRequest
0 голосов
/ 12 февраля 2020

Я потратил ужасно много времени, пытаясь отладить это. У меня уже есть заполненный файл 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:
...