Docker服务副本无法访问

时间:2018-12-25 14:55:25

标签: spring-boot docker docker-stack

  1. 当我在下面奔跑时

    docker run --name foo -d -p 4000:1967 foo_service
    

    我能够从我的自定义spring boot rest终结点获得响应 使用curl或任何浏览器(localhost:4000),因此很明显 0.0.0.0:4000-> 1967 / tcp 端口映射按预期工作。

  2. 但是,当我在下面跑时

    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:
    

    有人知道这是什么问题吗?每个选项之间有什么区别?

0 个答案:

没有答案
相关问题