docker 용기 내 서비스 액세스 호스트 서비스
본 논문 배경: 운영 체제: macos 필자 의 docker 가상 컴퓨터 에서 nginx, node 서 비 스 를 실행 하여 앞 뒤 가 분 리 된 사 이 트 를 배치 하 였 으 나 docker 안의 node 서비스 운행 효율 이 매우 낮 기 때문에 코드 가 업 데 이 트 될 때마다 자동 으로 재 컴 파일 되 지 않 기 때문에 node 서 비 스 를 홈 호스트 에 배치 하려 고 합 니 다.
문제 가 발생 했 습 니 다: 원래 nginx 에 서 는 node 서비스 포트 로 프 록 시 전송 을 설정 하 였 습 니 다:
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
}
단, node 서 비 스 를 호스트 에 배치 한 후 에는 직접 통과 할 수 없습니다.http://localhost:8000접근 하면 502 오류 가 발생 합 니 다. 즉, 용기 내 에서 localhost 를 방문 하면 호스트 에 접근 할 수 없습니다.
인터넷 에는 여러 가지 방법 이 있 습 니 다. 1. docker for mac, 용기 안에 도 메 인 이름: docker. for. mac. host. internal 을 통 해 숙박 호스트 를 방문 할 수 있 습 니 다. 본인 이 실측 한 결과 이 도 메 인 이름 을 사용 하 는 지, 숙박 호스트 2 에 접근 하지 않 았 는 지, 그리고 해결 방안 은 Docker 를 설치 할 때 숙박 호스트 에 가상 게 docker 0 을 설치 하 는 것 입 니 다.우 리 는 localhost 대신 에 호스트 가 docker 0 에 있 는 IP 주 소 를 사용 할 수 있 습 니 다. 그러나 이 가상 게 이 트 웨 이 가 없 는 것 은 운영 체제 의 원인 일 수 있 습 니 다.
가장 좋 은 실천 솔 루 션: ifconfig 를 통 해 네트워크 상 태 를 보고
status:active
의 ip 주 소 를 찾 아 용기 내 ping 을 합 니 다. ping 이 통 하면 이 ip 을 사용 하여 용기 내 에서 숙 호스트 에 접근 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swarm의 도커 비밀이 게시물에서는 Redis를 사용한 실제 시나리오 예제를 제공하여 사용 방법을 보여주고자 합니다. Docker 기술에 대한 기본 지식 Docker Swarm 오케스트레이터에 대한 기본 지식 "Docker Swarm ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.