저는 "사용자 정의"브리지 네트워크의 "Ubuntu 16.10 Server"에서 2.9 (yml 버전 2.1)의 여러 컨테이너를 실행하고 있습니다. 대부분의 컨테이너는 내부적으로 동일한 포트를 사용하기 때문에 "호스트"네트워크 드라이버를 사용할 방법이 없습니다. 내 컨테이너는 모두 전용 링크 links
속성을 사용하여 링크입니다.호스트 DNS 서버를 사용하는 Docker-compose 컨테이너
하지만 내 컨테이너 외부에 노출 된 서비스에 액세스해야합니다. 이 서비스에는 회사의 DNS 서버에 등록 된 전용 URL이 있습니다. 공개 DNS를 사용하고 컨테이너에서 공공 서비스에 도달하는 데 문제가 없지만 개인 DNS에는 연결할 수 없습니다.
컨테이너의 개인 DNS를 사용하는 해결책을 알고 계십니까? 또는 호스트의 네트워크 DNS 구성을 사용하는 것이 더 좋습니다.
추신 : 물론 내 서비스의 extra_hosts
속성을 내 docker-compose.yml 파일에 사용하여 회사의 서비스에 연결할 수 있습니다. 그러나 그것은 확실히 DNS를 갖는 목표는 아닙니다. 내 서비스를 YML 파일에 등록하고 싶지 않고 서비스 IP가 회사에서 업데이트 될 때마다 업데이트하고 싶지 않습니다.
상황 :
- 호스트 : 우분투 16.10 서버
- 도커 엔진 : 1.12.6
- 도커 작성 : 1.9.0
- 고정 표시기-compose.yml : 2.1
- 네트워크 : 소유 브리지.
고정 표시기-compose.yml 파일 (추출물) :
version: '2.1'
services:
nexus:
image: sonatype/nexus3:$NEXUS_VERSION
container_name: nexus
restart: always
hostname: nexus.$URL
ports:
- "$NEXUS_81:8081"
- "$NEXUS_443:8443"
extra_hosts:
- "repos.private.network:192.168.200.200"
dns:
- 192.168.3.7
- 192.168.111.1
- 192.168.10.5
- 192.168.10.15
volumes_from:
- nexus-data
networks:
- pic
networks:
pic:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.18.0.0/16
gateway: 172.18.0.1
나는 운이없이, 함께하고 pic
네트워크에 대한 ipam
구성없이 시도했다. 제대로
docker exec -ti nexus curl another-service.private.network
반환 curl: (6) Could not resolve host: another-service.private.network; Name or service not known
호스트에서 curl another-service.private.network
동안 해당 HTML 페이지를 반환하는이 서비스에서 제공하는 HTML 페이지를 docker exec -ti nexus curl repos.private.network
반환 :
는 & 결과를 테스트합니다.
"당연히"another-service.private.network
은 4 대의 DNS 서버 (192.168.3.7, 192.168.111.1, 192.168.10.5, 192.168.10.15)에 알려져 있습니다.
건배, 올리비에.
안녕하세요 @ 롭, 답변 해 주셔서 감사합니다. 원래의 포스트를 편집하여 내 conf (Ubuntu 16.10 서버에서 커스텀 브리지로 실행 중)에 대한 세부 사항을 추가합니다. – Olivier