2017-11-23 1 views
1

상황은 다음과 같습니다. 우리는 nookx와 도커 서버 역할을하는 서비스를 제공합니다. docker 호스트의 nginx에서 컨테이너의 응용 프로그램에 연결하는 방법

는 또한 우리는 8080

에 문제는 컨테이너의 게시 된 포트의 nginx에서 연결 할 수있는 권한이 수신 고정 표시기 컨테이너, 자바 응용 프로그램이 있습니다.

Nginx.error.log 보여줍니다 :

2017/11/23 13:44:12 [crit] 3599#0: *1 connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream, 
2017/11/23 13:44:13 [error] 3599#0: *1 no live upstreams while connecting to upstream 

사이트 설정은 다음과 같습니다

server { 
listen 80 default_server; 
server_name _; 

location/{ 
    proxy_pass http://localhost:8080; 
    include proxy.conf; 
} 
} 

컨테이너 설정 : nginx를 사용자가 nginx하고 고정 표시기 사용자이기 때문에

version: '3' 
services: 
    app: 
    image: user/appX 
    restart: always 
    container_name: appX 
    ports: 
    - "8080:8080" 
    env_file: 
     - ./appX.env 
    extra_hosts: 
     - "host:172.101.0.1" 
    networks: 
     mynet: 
     ipv4_address: 172.101.0.2 

networks: 
    mynet: 
     external: 
     name: mynet 

권한이 발생 root. nginx를 컨테이너로 이동하지 않고이 문제를 해결하는 방법은 무엇입니까? 어딘가에 해결 방법이 있습니까?

+0

'고정 표시기의 ps'의 출력은 무엇인가 :

는 실행이 해결? –

+0

@ShawnC, 6d18f20bbb90 user/appX "/ bin/sh -c 'exec ..."21 시간 전 최대 21 시간 0.0.0.0:8080-> 8080/tcp appX – kyberorg

답변

0

문제가 SELinux 구성에있었습니다.

setsebool -P httpd_can_network_connect 1

관련 문제