我是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