Is there ability to stop and start the specific service via docker swarm or kubernetes?

1/15/2019

I'm newbie in the Docker, so I need your advice.

I try to move under docker containers my current system of java application based on Jboss AS. I have different host machines with 1, 2 or 3 jboss as. I've configured this system to run in the swarm mode as stack where each jboss is separate service. I use host network with global mode. Also I use docker-compose file to discribe all system.

What I need - ability to stop a specific service. I can stop service using 'docker service rm' command but it removes this service from stack fully. If I stopped some services and then I want to start only one from these, I can't find any command to do this. Is there any solution to do this using docker swarm? Or I need to look toward the Kubernetes?

In common case, I want to have the single point to configure and control my system.

Below the example of my docker-compose file.

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
-- Oleg Krylov
docker
docker-swarm
java
jboss
kubernetes

1 Answer

1/15/2019

You can use docker service scale and make the replicas to 0. docker service scale documentation

It has mentioned the solution.

-- ygbgames
Source: StackOverflow