이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 8925|회답: 0

외부 호스트 서비스에 접근하기 위한 도커 컨테이너

[링크 복사]
게시됨 2019. 11. 19. 오전 10:10:01 | | | |
도커 컨테이너의 기본 네트워크는 브리지 형태(호스트와 같은 LAN에 있지만 별도의 LAN IP를 사용함)입니다. 프로그램이 프로덕션 환경에서 실행될 때는 데이터베이스, 레디스 등과 연결하기 위해 해당 서비스 주소만 설정하면 됩니다.

개발 환경에서는 서비스가 도커에서 실행되고 데이터베이스가 로컬에서 실행된다면, 127.0.0.1 구성 자체가 쉽지 않습니다.

이 문제는 두 가지 방법으로 해결할 수 있습니다.

해결책 1:

호스트 머신과 컨테이너를 별도의 두 머신으로 간주하고, 주소를 설정할 때 호스트 호스트의 LAN IP 또는 공인 IP를 설정하세요.

해결책 2:

호스트 주소는 직접 host.docker.internal로 작성하세요.두 번째 방법은 도커 버전 18.03 이상이어야 하며, Windows와 Mac에서 사용할 수 있어야 합니다

이 두 방법이 호스트에 접근할 수 있는지 테스트하려면, docker로 이미지를 직접 실행해 명령줄에 핑을 보낼 수 있습니다:

Docker로 만든 컨테이너에 ping 도구를 설치하세요
https://www.itsvse.com/thread-8966-1-1.html
(출처: Architect_Programmer)


위 사진에서 보시다시피, 컨테이너 접근host.docker.internal호스트의 서비스에 접근할 수 있는데, /etc/hosts 파일을 확인하면 도메인 이름 리디렉션이 없고, 도커의 구체적인 기본 원리도 모릅니다.

호스트와 컨테이너 모두 host.docker.internal을 통해 호스트의 서비스에 접근할 수 있지만, ping 명령어가 반환하는 주소는 다음과 같이 다릅니다:









이전의:예시는 Redis 캐시 침투, 캐시 눈사태, 캐시 붕괴가 무엇인지 설명합니다
다음:Autofac "순환 부품 의존성 감지" 오류 해결
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com