나는 docker에 익숙하지 않으며 docker swarm보다 분산 된 Java 응용 프로그램을 실행하려고합니다. docker-compose up 명령을 사용하여 한 노드에서 테스트 했으므로 제대로 작동합니다. 내가Docker swarm에 분산 된 Java App
docker stack deploy --compose-file myfile.yml myapp
구성 요소 "메신저"구성 요소 "지휘자"
내가 레이블 "지휘자"를 사용하여 연결할 수없는 명령과 서비스로 배포하려고
구성 요소의 IP 주소로 사용 (간단한 구성으로 작동)
어떤 도움이 필요합니까? 내 작성 파일
아래 내가 작성 파일을 만든 :
version: "3"
services:
zk:
image: xxx/cep
deploy:
mode: replicated
replicas: 1
entrypoint: /ext-sw/zookeeper-3.4.5/bin/zkServer.sh
command: start-foreground
ports:
- 2181:2181
networks:
- cepnet
orchestrator:
image: xxx/cep
deploy:
mode: replicated
replicas: 1
entrypoint: /bin/runOrchestrator
ports:
- 9000:9000
depends_on:
- zk
networks:
- cepnet
im:
image: xxx/cep
deploy:
mode: replicated
replicas: 1
entrypoint: /bin/runIM -IP im -PORT 9901 -ID im1 -LOGID im1
ports:
- 9901:9901
depends_on:
- orchestrator
networks:
- cepnet
networks:
cepnet:
enter code here
편집 : 바와 같이 컨테이너에 고정 표시기에 의해 할당으로 인해 IP에 내 원래의 문제는 댓글 말했다. documentationdepends_on
에 명시된 바와 같이 서비스 이름 및 호스트 이름
[email protected]:~# ping orchestrator
PING orchestrator (10.0.0.9) 56(84) bytes of data.
64 bytes from 10.0.0.9: icmp_seq=1 ttl=64 time=0.032 ms
64 bytes from 10.0.0.9: icmp_seq=2 ttl=64 time=0.034 ms
64 bytes from 10.0.0.9: icmp_seq=3 ttl=64 time=0.033 ms
^C
--- orchestrator ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2010ms
rtt min/avg/max/mdev = 0.032/0.033/0.034/0.000 ms
[email protected]:~# ping $(hostname)
PING 90cfe6fc88ed (10.0.0.10) 56(84) bytes of data.
64 bytes from 90cfe6fc88ed (10.0.0.10): icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from 90cfe6fc88ed (10.0.0.10): icmp_seq=2 ttl=64 time=0.018 ms
64 bytes from 90cfe6fc88ed (10.0.0.10): icmp_seq=3 ttl=64 time=0.014 ms
^C
--- 90cfe6fc88ed ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2033ms
rtt min/avg/max/mdev = 0.014/0.029/0.055/0.018 ms
"swarm cluster"가 실행 중입니다. 처음에는 3 개의 노드로 구성되어 이제는 단일 노드에서 테스트하기 위해 두 개의 노드를 제거했습니다. – Valerio
업데이트 전에 죄송합니다. 오케 스트레이터는 서비스가 아닙니다. 제 편집 된 답변을 확인하십시오 – herm
답변 해 주셔서 감사합니다. 문제는 항구 인 것 같습니다. 구성을 사용하여 응용 프로그램을 시작하면 im 컴퓨터에서 "telnet im 9000"명령을 실행할 수 있습니다. 스택을 배포 할 때 텔넷으로 연결할 수 없습니다. – Valerio