Не могу подключиться к докеру с хоста

Всем привет, недавно стал изучать докер. Есть 2 сервиса на spring boot один настроен на 8081 порт, другой по умолчанию на 8080. Если запускаю их на хосте, то все норм коннектиться по localhost:8080/... Я решил перенести все это в докер. Использую docker-compose и Dockerfile для каждого сервиса. Вот код:

version: '3'

services:
  mysql:
    container_name: mysql
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_HOST: '%'
      MYSQL_ROOT_PASSWORD: testtest
    ports:
      - 3306:3306
    expose:
      - 3306
    healthcheck:
      test: "/usr/bin/mysql --user=root --password=testtest --execute \"SHOW DATABASES;\""
      interval: 2s
      timeout: 20s
      retries: 10
    volumes:
      - ./sql:/docker-entrypoint-initdb.d

  zookeeper:
    image: confluentinc/cp-zookeeper:latest
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
    ports:
      - 22181:2181
  
  kafka:
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zookeeper
    ports:
      - 29092:29092
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
  
  receipt:
    container_name: receipt
    build: ./receipt
    ports: 
      - 8081:8081
    environment:
      KAFKA_SERVER: kafka:9092
    depends_on: 
      - kafka

  hotel:
    container_name: hotel
    build: ./hotel
    hostname: hotel
    ports: 
      - 8080:8080
    expose:
      - 8080
    environment:
      WAIT_HOSTS: mysql:3306
      KAFKA_SERVER: kafka:9092
    depends_on: 
      - kafka 
      - mysql

вот докерфалйл на сервис hotel(надо именно до него достучаться):

FROM adoptopenjdk/openjdk11:ubi
VOLUME /tmp
ADD ./hotel.jar app.jar
CMD sleep 60 && java -jar app.jar

Сами сервисы поднимаются нормально, ошибок нет в логах. Вот так выглядит инфа о них:

скрин с выводом команды docker ps

На то что в конце нет контейнеров не смотрите, просто я их вручную вырубил. Как я вижу, порты прокинуты, но при попытке зайти на них через постман или просто браузер он их никак не обнаруживает. Проблема именно на моей машине, т.к. этот проект отлично прошел тест на другом компе. Если что, у меня win 8 64x. В чем может быть дело? Брандмауэр отключал, не помогло. Может быть кто сталкивался?


Ответы (2 шт):

Автор решения: Exploding Kitten

Т.к. контейнер изолирован от хост системы (запускается внутри виртуальной сети 172.x.x.x), то 127.0.0.1/localhost внутри контейнера, это адреса, которые будут доступны только внутри контейнера, если вы хотите получить доступ снаружи, то нужно использовать server.address=0.0.0.0 адрес, это приведет к тому, что приложение будет слушать указанный порт на всех адресах.

→ Ссылка
Автор решения: SerjK

Попробуйте подключиться к контейнеру по адресу localhost:8080

→ Ссылка