docker 용기 내 서비스 액세스 호스트 서비스

1290 단어 dockerlinux
나의 개인 블 로그: 점차 STEP
본 논문 배경: 운영 체제: 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 을 사용 하여 용기 내 에서 숙 호스트 에 접근 합 니 다.

좋은 웹페이지 즐겨찾기