두 개의 노드, 한 명의 관리자 및 한 명의 작업자로 구성된 웜이 있습니다. 나는 내 응용 프로그램에 액세스 할 수 있도록 항구에 게시 된 포트를 갖고 싶습니다. 어떻게 달성 할 수 있을지 궁금합니다. I가 고정 표시기가-구성 실행할 때도커 배포는 웜에 포트를 게시하지 않습니다.
version: '2'
services:
server:
build: .
image: my-hub.company.com/application/server:latest
ports:
- "80:80"
이 포트 (80)를 노출하고 나는이
docker deploy my-service
이 포트를 게시하지 않습니다 배포 번들 실행할 때, 그러나 잘 작동, 그래서 그것은 단지 말한다 포트를 가리키는 대신 docker ps의 80/tcp. 아마도 이것은로드 밸런서를 부착하거나 멋진 명령을 실행하거나 실제로 다른 호스트의 구성을 추가하여 다중 호스트 집단에이 포트를 노출해야하기 때문일 수 있습니다.
누군가이 포트를 공개하기 위해 구성 /해야 할 일을 이해할 수있게 도와 줄 수 있습니까?
가장 좋은 시나리오는 포트 80이 노출되어 있고 다른 호스트 이름에서 액세스하면 다른 응용 프로그램으로 보내집니다.
업데이트 : 내가 HA 프록시를 실행하기 위해이 저장소를 발견
docker service update -p 80:80 my-service_server
docker kill <my-service_server id>
응용 프로그램을 배포 한 후 나는 다음과 같은 명령을 실행하면 작동하는 것 같다, 내가 그러나, 큰 보인다 고정 표시기 스스로 지원 새로운 스웜 모드를 사용하여이 서비스를 내 서비스에 별도로 적용 할 수 없습니다. 내가 명령을 만들 고정 표시기 서비스를 통해 서비스를 연결하는 방법을 찾을 수 없습니다 그러나
Internet -> HAProxy -> Service_A -> Container A
가 최적으로 지금과 같습니다
https://github.com/docker/dockercloud-haproxy
네트워크가 보일 것입니다 방법을 설명 하단에 좋은 설명이있다 네트워크를 설정하는 방법이며,이 네트워크를 서비스에 적용하면 HAProxy에서이를 선택할 것입니다.
- 마커스
내 서비스가 "게시 된 포트"(공개적으로 웜 외부)로 포트를 노출하고 싶지 않지만 내부 서비스 (웜 내부)에 노출시켜 다른 서비스에서 다른 서비스에서 사용하려는 경우 어떻게해야합니까? 떼. –
그러면 아무 것도 할 필요가 없습니다. 이는 서비스가 모두 기본 네트워크에 있거나 모두 동일한 네트워크에 참여하는 한 기본 동작입니다. – dnephin