저는 장고 앱을 개발 중이며 모든 개발자를 도커 컨테이너로 옮기기로 결정했습니다. 나는 작은 문제가있다 : 기본적으로, 나는 3 개의 컨테이너가있다 : - app (장고 코드를 가지고있다) - 데이터베이스를 보유하고있는 postgres - web (포트 80에서 8000으로 들어오는 요청을 전달하는 nginx 어떤이 내 문제는 내가 "응용 프로그램"컨테이너 외부에서 내 웹 사이트에 액세스 할 수 있다는 것입니다 장고가 사용하는 포트)입니다, 내 nginx를 로그 말 :IP 주소로 도커 컨테이너에 액세스 할 수 없습니다.
이2014/12/21 22:22:35 [error] 9#0: *9 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.59.3, server: _, request: "GET/HTTP/1.1", upstream: "http://172.17.0.62:8000/", host: "192.168.59.103"
그래서 분명히,의 nginx는 "응용 프로그램 때문에 CONNEXIONS를 전달할 수 없습니다 "컨테이너 (192.168.59.103)는 연결을 수신 대기하지 않습니다. 하지만 그게 사실이 아니에요, 왜냐하면 내가 애플 리케이션 컨테이너에 연결하고 컬 요청을하려고했는데 : - 내가 curl "localhost:8000"
을하면 작동한다. (나는 장고 시작 페이지를 얻는다. - 내가한다면 curl "http://172.17.0.62:8000/"
작동하지 않는다. 그래서, 내가 문제를 격리하고 "경로"명령 나를 보여줍니다 실행 관리 :
Destination Gateway Genmask Flags Metric Ref Use Iface
default 172.17.42.1 0.0.0.0 UG 0 0 0 eth0
172.17.0.0 * 255.255.0.0 U 0 0 0 eth0
그들을, 나는 boot2docker의 SSH에 가서 입력 "경로"와이 나온 것입니다 :
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.0.2.2 0.0.0.0 UG 1 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.1 * 255.255.255.255 UH 0 0 0 lo
172.17.0.0 * 255.255.0.0 U 0 0 0 docker0
192.168.59.0 * 255.255.255.0 U 0 0 0 eth1
분명히 나는 컨테이너에 대한 좋은 경로가 없지만, 내가 그 configs를 건드리지 않았기 때문에 이상했다. 아무도 단서가 있습니까?
도커 실행 명령이 모든 컨테이너에 대해 어떻게 표시됩니까? –