当我在下面奔跑时
docker run --name foo -d -p 4000:1967 foo_service
我能够从我的自定义spring boot rest终结点获得响应 使用curl或任何浏览器(localhost:4000),因此很明显 0.0.0.0:4000-> 1967 / tcp 端口映射按预期工作。
但是,当我在下面跑时
docker stack deploy -c docker-compose.yml foo_service
我无法到达任何容器,因此没有任何回应
本地主机:4000,并且容器也立即重新启动
首次启动后。
我在所有容器中都为选项1和运行了netstat命令 选项2。在选项2中,我可以看到正在监听端口1967,但在 选项2,有一些随机端口(我想这很正常, 因为这些端口发布到1967年才开始应用负载平衡)
堆栈
docker version 18.0
java 1.8.181
spring boot 2.1.1 (basic rest controller with one endpoint)
Dockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
EXPOSE 1967
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
docker-compose.yml
version: "3"
services:
web:
image: foouser/foorepo:foo
deploy:
replicas: 3
resources:
limits:
cpus: "0.1"
memory: 50M
restart_policy:
condition: on-failure
ports:
- "4000:1967"
networks:
- webnet
networks:
webnet:
有人知道这是什么问题吗?每个选项之间有什么区别?