Реплики службы Docker недоступны - PullRequest
0 голосов
/ 25 декабря 2018
  1. Когда я запускаю ниже

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

    , я могу получить ответ от своей пользовательской конечной точки отдыха с весенней загрузкой с помощью curl или из любого браузера (localhost: 4000), так что этоочевидно, что 0.0.0.0:4000->1967/tcp отображение портов работает, как и ожидалось.

  2. Но, когда я бегу ниже

    docker stack deploy  -c docker-compose.yml foo_service
    

    Я не могу связаться ни с одним из контейнеров и, следовательно, нет ответа от localhost: 4000, а также контейнеры немедленно перезапускаются после первоначального запуска.

    Я выполнил команду netstat во всех контейнерах как для варианта 1, так и для варианта 2.В варианте 2 я вижу, что порт 1967 прослушивается, но в варианте 2 есть несколько случайных портов (я думаю, это нормально, поскольку эти порты публикуются в 1967 году для применения баланса нагрузки)

    Stack

    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:
    

    Кто-нибудь знает, в чем здесь проблема?В чем разница между каждым вариантом?

...