Есть ли возможность остановить и запустить конкретную службу через Docker Swarm или Kubernetes? - PullRequest
0 голосов
/ 15 января 2019

Я новичок в Докере, поэтому мне нужен ваш совет.

Я пытаюсь переместить под Docker-контейнеры мою текущую систему Java-приложений, основанную на Jboss AS. У меня есть разные хост-машины с 1, 2 или 3 jboss as. Я настроил эту систему для работы в режиме роя в виде стека, где каждый jboss является отдельной службой. Я использую сеть хоста с глобальным режимом. Также я использую файл docker-compose для описания всей системы.

Что мне нужно - возможность остановить конкретный сервис. Я могу остановить службу, используя команду 'docker service rm', но она полностью удаляет эту службу из стека. Если я остановил некоторые службы и затем хочу запустить только одну из них, я не могу найти ни одной команды для этого. Есть ли решение сделать это с помощью Docker Swarm? Или мне нужно смотреть в сторону Kubernetes?

В общем случае я хочу иметь единую точку для настройки и управления моей системой.

Ниже приведен пример моего файла docker-compose.

version: '3.5'

x-common-deploy-config:
    &common-deploy-config
    mode: global
    restart_policy:
       condition: on-failure 


x-default-jboss:
    &default-jboss
    image: some-image

    networks:
        hostnet: {}

    command: ["./scripts/run.sh"]


x-jboss-c1:
    &jboss-c1
    << : *default-jboss

    volumes:
        - "/data/jboss-docker-test/logs/c1:/data/jboss/server/log"

    environment:
        - JBOSS_PORT_OFFSET=ports-01
        - JBOSS_SERVER_NUMBER=1

x-jboss-c2:
    &jboss-c2
    << : *default-jboss

    volumes:
        - "/data/jboss-docker-test/logs/c2:/data/jboss/server/log"

    environment:
        - JBOSS_PORT_OFFSET=ports-02
        - JBOSS_SERVER_NUMBER=2


services:

    jboss-28-c1:
        << : *jboss-c1
        env_file: host_1.28.env

        deploy:
            << : *common-deploy-config
            placement:
                constraints:
                    - node.labels.hostaddress == 192.168.1.28


    jboss-28-c2:
        << : *jboss-c2
        env_file: host_1.28.env

        deploy:
            << : *common-deploy-config
            placement:
                constraints:
                    - node.labels.hostaddress == 192.168.1.28

        command: ["./scripts/run.sh", "1"]


networks:
  hostnet:
    external: true
    name: host

1 Ответ

0 голосов
/ 15 января 2019

Вы можете использовать масштаб обслуживания Docker и сделать реплики равными 0. документация по шкале обслуживания докера

Он упомянул решение.

...