Я хочу продемонстрировать запуск Docker swarm на простом веб-сайте Asp.Net Core на локальной виртуальной машине Windows Server 2016. Веб-сайт работает на порту 5000. Однако, когда я инициализирую рой и добавляю службу, я не могу посетить адрес веб-сайта на указанном порту. Переход к http://localhost:5000, http://127.0.0.1:5000 или любой из IP-адресов сервисного контейнера не открывает сайт. Почему так происходит с роем?
Брандмауэр Windows отключен.
Dockerfile.build
FROM microsoft/aspnetcore:2.0.0-nanoserver
WORKDIR /
COPY /bin/Release/netcoreapp2.0/win7-x64/publish ./
EXPOSE 5000
ENTRYPOINT ["AspNetCoreHelloWorld.exe", "--urls", "http://*:5000"]
Инициализировать рой
docker swarm init --advertise-addr 127.0.0.1:2377 --listen-addr 0.0.0.0:2377
Создать сервис
docker service create --name helloworld --publish 5000:5000 --replicas 3 myazureregistry.azurecr.io/aspnetcore-hello-world:v2
Я могу подтвердить, что служба реплицирует три экземпляра в моем узле. Почему столбец портов пуст, хотя я сопоставил порт 5000?
docker service ps helloworld
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
y7i6pn9dcgtk helloworld.1 myazureregistry.azurecr.io/aspnetcore-hello-world:v2 WIN-QL7AIOPATIH Running Starting 16 seconds ago
vpc3naln3q2l helloworld.2 myazureregistry.azurecr.io/aspnetcore-hello-world:v2 WIN-QL7AIOPATIH Running Starting 16 seconds ago
w88cwnj7omo7 helloworld.3 myazureregistry.azurecr.io/aspnetcore-hello-world:v2 WIN-QL7AIOPATIH Running Starting 16 seconds ago
docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
66h9usj0xxiq helloworld replicated 3/3 myazureregistry.azurecr.io/aspnetcore-hello-world:v2 *:5000->5000/tcp