Приложение Spring-boot: сопоставление портов не работает в докере

Я запускаю докер в Windows7, делаю простое приложение с весенней загрузкой, помещаю его в образ и запускаю в контейнере докера. Когда я обращаюсь к своему локальному приложению (http://localhost:8080), я вижу ответ, все в порядке. Когда я помещаю его в контейнер и запускаю, он также запускается в контейнере, журналы в порядке, но сопоставление портов не работает, и я не могу получить ответ от своей локальной машины. Пожалуйста, дайте совет P.S. Также пробовал обращаться извне (не через http://localhost:8080, а через внешний локальный IP-адрес моего ПК: 192.168.1.10:8080), но результат тот же.

dockerfile:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD docker-spring.jar app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]

build: docker build -t springimg .
run: docker run -p8080:8080 springimg

person Rodriguez    schedule 04.03.2020    source источник


Ответы (1)


Docker в Windows 7 использует виртуализацию для поддержки docker-engine.

Привязка порта в настоящее время находится на виртуальной машине, на которой работает docker-engine.

Виртуальная машина создается и управляется с помощью docker-machine.

Бежать:

docker-machine ip

узнать ip адрес.

person matiferrigno    schedule 04.03.2020
comment
Спасибо! Оно работает! И как я могу сопоставить свой локальный IP-адрес с IP-адресом докер-машины, если я хочу обратиться к приложению извне? - person Rodriguez; 04.03.2020
comment
Через брандмауэр Windows вы можете создать правило для сопоставления порта виртуальной машины с гипервизором. - person matiferrigno; 04.03.2020
comment
Большое спасибо! Убил день на это! Спасибо! - person Rodriguez; 04.03.2020
comment
Не за что. Также вы можете позволить виртуальному боксу справиться с этой настройкой сопоставления, есть несколько ссылок, которые объясняют, как это сделать. проверьте stackoverflow.com/questions/32174560/ - person matiferrigno; 04.03.2020