Я новичок в Докере, поэтому мне нужен ваш совет.
Я пытаюсь переместить под 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