Мне нужна ваша помощь, чтобы понять, правильно ли я понимаю, как работает докер.
Я создал собственный образ с помощью Dockerfile.Dockerfile выглядит следующим образом:
FROM mcr.microsoft.com/dotnet/framework/wcf:4.8
COPY ./ .
RUN "C:\assets\vc_redist.x64.exe" /quiet /install
WORKDIR /ServicioOcr .
RUN powershell -NoProfile -Command \
Import-module IISAdministration; \
New-IISSite -Name "ServicioOcr" -PhysicalPath C:\ServicioOcr -BindingInformation "*:1990:"; \
Add-WindowsFeature NET-WCF-HTTP-Activation45
ENTRYPOINT ["C:\\KeepAlive.exe"]
EXPOSE 1990
Затем я без проблем запускаю контейнер, публикующий открытые порты:
d96e49d67157 ocrserviceimage:v1 "C:\\ServiceMonitor.e" 3 hours ago Up 2 hours 80/tcp, 808/tcp, 0.0.0.0:2019->1990/tcp ocrservcont
Затем я создал Docker Service, чтобы я мог иметь несколько репликиз контейнеров, в которых размещается служба, с помощью следующей команды:
docker service create --name=SWARM_OCR_SERVICE ocrserviceimage:v8 --publish 2020:1990
Затем я запускаю контейнер внутри службы, поэтому я проверяю, был ли порт опубликован правильно, но это не было
shkmfrrodg1a SWARM_OCR_SERVICE.1 ocrserviceimage:v8 BAZ1573221 Running Running 2 hours ago
Как я понимаю, Docker Service должен работать следующим образом:
- Docker Service создает количество указанных реплик внутри него.Каждая реплика, на которой запущен отдельный экземпляр службы.
- Служба внутри контейнеров должна быть доступна через опубликованный порт ip:.
- Запросы отправляются на опубликованный порт ip: и затем направляются вдоступная копия / контейнер, который может с этим справиться.
Правильно ли мое понимание?
Заранее спасибо.