2017-04-06 3 views
0

서버에 컨테이너 2 개를 실행 중입니다. 그것들은 기본 nginx 이미지가있는 도커 컨테이너입니다.Nginx 프록시 문제

Container1을 Container2의 역방향 프록시로 사용하려고합니다.

container1을 IP 주소에 있습니다 172.17.0.3 내가 기본 Nginx에 홈페이지를 얻을 container1을 컬 때 컨테이너 2가 IP 주소 172.17.0.4

이다. 컨테이너 2의 기본 홈페이지를 편집하여 ip에서 컬 (curl)로 확인 된 것이 단지 <p> HI </p>입니다. 등 내 서버에

은/hosts 파일에, 나는

172.17.0.3 testapp.net 

내 이름이 container1의 /etc/nginx/conf.d/default.conf

server { 
    listen  80; 
    server_name localhost; 
location/{ 
    root /usr/share/nginx/html; 
    index index.html index.htm; 
} 

#error_page 404    /404.html; 

# redirect server error pages to the static page /50x.html 
# 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
    root /usr/share/nginx/html; 
} 

} 

server { 
    listen 80; 
    server_name testapp.net; 

    location/{ 
     proxy_pass http://172.17.0.4 

    } 

} 

입니다 내가 curl testapp.net을 수행 할 때 내가 (기본이 container1의 Nginx에 대한 홈 페이지를 얻을이 줄을 추가 hello nginx html 파일) 컨테이너 2에 연결되지 않았습니다. 왜 이런 일이 일어나는 걸까요?

+0

시도하기 전에 nginx 구성을 다시로드 했습니까? –

+0

예, 설정을 새로 고칩니다 – PYA

+0

호스트 파일을 어떻게 수정 했습니까? 도커 실행 또는 빌드 중? –

답변

1

문제는 단지 독커 컨테이너가 아닌 서버의/etc/hosts 파일을 수정한다는 것입니다. 컨테이너는 자체 파일 시스템과 자체 네트워크를 가지고 있기 때문에 수정이 적용되지 않습니다.

해결책은 도커를 실행하는 동안 컨테이너의/etc/hosts를 수정하는 것입니다.

docker run --add-host testapp.net:172.17.0.3 your_image 
+0

이렇게하면 도커가 나타납니다 :'데몬에서 오류 응답 : oci 런타임 오류 : container_linux.go : 247 : 컨테이너 프로세스가 시작되었습니다. "exec : \"- add-host \ ": $ PATH에 실행 파일이 없습니다." – PYA

+0

@pyjg 도커 버전은 무엇입니까? –

+0

도커 버전 17.03.0-ce, – PYA