Если интересно: ОС: WIN10 (cygwin), код написан на Java
. Я использую виртуальные машины Hyperv, как указано в этом руководстве: этот
Я ожидал достичь
service
напротивcontainer
, который работает на порту 80, используяmyvm1IP:80
(браузер ir curl). Как-то так не получается. Или я неправильно понимаю переадресацию служебного порта?*: 8080-> 80 / TCP
У меня есть работающий кластер docker swarm, состоящий из 2 узлов. Я могу проверить связь с обеими работающими виртуальными машинами
Я уже понизил версию, так как были проблемы с более свежими номерами версий. Информация об использовании двигателя docker inspect vmName
:
"Engine": {
"EngineVersion": "18.06.1-ce",
"Labels": {
"provider": "hyperv"
},
Я выполнил следующие docker-compose.yml
:
version: "3"
services:
web:
image: elps/articleservice:1.1.0.4
deploy:
replicas: 2
restart_policy:
condition: on-failure
ports:
- "8080:80"
environment:
- MYSQL_HOST=192.168.178.82
- MYSQL_DB=article
- MYSQL_USER=root
- MYSQL_PASSWORD=abcdefg
networks:
- webnet
networks:
webnet:
Обе реплики успешно запустились и могут подключиться к локальной работающей базе данных (при условии, что я просмотрел журналы и все выглядело нормально). Контейнер запущен и работает.
Вывод docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
979ed7ea88b7 elps/articleservice:1.1.0.4 "java -jar articlese…" 27 minutes ago Up 27 minutes 8080/tcp getstartedlab_web.1.j1j41so8pz6atxqnq9fqqquk7
7684c3667025 elps/articleservice:1.1.0.4 "java -jar articlese…" 27 minutes ago Up 27 minutes 8080/tcp getstartedlab_web.2.r4kadvztiwgpckkuannnhcsea
Вывод docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
gvyi9moxtpvq getstartedlab_web replicated 2/2 elps/articleservice:1.1.0.4 *:8080->80/tcp
Вывод docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
myvm1 * hyperv Running tcp://192.168.178.88:2376 v18.06.1-ce
myvm2 - hyperv Running tcp://192.168.178.89:2376 v18.06.1-ce
Когда я пытаюсь выполнить curl myvmIP:80
Я получаю
Не удалось подключиться к порту 192.168.178.88 80: соединение отклонено
как ответ. Я ожидал получить 404
код ошибки, поскольку нет сопоставления для /
. Я ошибаюсь в этом?