Docker群集服务端口不可访问

我对docker工人来说是个不错的select,我在前几天阅读官方教程如何使用它。 我决定把我非常简单的spring-boot应用程序作为服务部署到一个群中,但是我无法从外部访问它。 顺便说一句,当我启动docker运行docker,容器是可访问的。

所以我的spring-boot tomcat正在监听8081。

Dockerfile:

FROM java:openjdk-8-alpine VOLUME /tmp EXPOSE 8081 ADD docker-demo-1.0.jar app.jar ENV JAVA_OPTS="" ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "- jar","/app.jar"] 

泊坞窗,compose.yml:

 version: "3" services: web: image: neyma6/demo:3.0 deploy: replicas: 2 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "8081:8081" networks: - webnet visualizer: image: dockersamples/visualizer:stable ports: - "8082:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock" deploy: placement: constraints: [node.role == manager] networks: - webnet networks: webnet: 

我部署了2个服务,一个可视化工具和一个spring-boot应用程序。 可视化程序可通过http:// localhost:8082 /访问,但该应用程序不在http:// localhost:8081 / test上

 docker swarm init docker stack deploy -c docker-compose.yml demo 

我做错了什么?

我假设你在本地(1节点)部署了这个docker堆栈,但是你试图在同一个8081端口上打开2个容器(副本)。 港口将会发生冲突。

将副本更改为1,然后再试一次。

我想清楚是什么问题,没有足够的内存提供给弹簧引导运行容器…