是否可以通过docker swarm或kubernetes停止和​​启动特定服务?

时间:2019-01-15 12:19:40

标签: java docker jboss kubernetes docker-swarm

我是Docker的新手,所以我需要您的建议。

我尝试在基于Jboss AS的Java应用程序当前系统的docker容器下移动。我有1、2或3个jboss作为不同的主机。我已经将该系统配置为以集群模式运行,其中每个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 :(得分:0)

您可以使用docker服务规模并将副本设为0。 docker service scale documentation

它已经提到了解决方案。