nginx-proxy는 nginx 및 docker-gen을 실행하는 컨테이너를 설정합니다. docker-gen은 nginx에 대한 역방향 프록시 구성을 생성하고 컨테이너가 시작되고 중지될 때 nginx를 다시 로드합니다.
이를 사용하려는 이유는 Docker용 자동화된 Nginx 역방향 프록시를 참조하세요.
실행하려면:
docker run --detach
--name nginx-proxy
--publish 80:80
--volume /var/run/docker.sock:/tmp/docker.sock:ro
nginxproxy/nginx-proxy:1.6
그런 다음 env var VIRTUAL_HOST=subdomain.yourdomain.com
으로 프록시 설정하려는 컨테이너(여기서는 nginx 컨테이너)를 시작합니다.
docker run --detach
--name your-proxied-app
--env VIRTUAL_HOST=foo.bar.com
nginx
foo.bar.com
nginx-proxy를 실행하는 호스트로 확인하도록 DNS가 설정된 경우 http://foo.bar.com
에 대한 요청은 VIRTUAL_HOST
환경 변수가 foo.bar.com
(이 경우에는 your-proxied-app 컨테이너)입니다.
프록시되는 컨테이너는 다음을 충족해야 합니다.
Dockerfile
에서 EXPOSE
지시문을 사용하거나 docker run
또는 docker create
에 --expose
플래그를 사용하여 프록시할 포트를 노출합니다.--net
플래그를 전달하지 않으면 기본 브리지 네트워크에만 연결됩니다. 이는 브리지 이외의 네트워크에 있는 컨테이너에 연결할 수 없음을 의미합니다. 참고: VIRTUAL_HOST
에 포트 번호를 제공하는 것은 지원되지 않습니다. 달성하려는 목표에 따라 가상 포트 또는 사용자 정의 외부 HTTP/HTTPS 포트를 참조하세요.
nginx-proxy 이미지는 두 가지 형태로 제공됩니다.
이 이미지는 nginx:mainline 이미지를 기반으로 하며 그 자체는 debian slim 이미지를 기반으로 합니다.
docker pull nginxproxy/nginx-proxy:1.6
-alpine
접미사)이 이미지는 nginx:alpine 이미지를 기반으로 합니다.
docker pull nginxproxy/nginx-proxy:1.6-alpine
latest
및 alpine
에 대한 참고 사항: 프로덕션 설정에는 latest
( nginxproxy/nginx-proxy
, nginxproxy/nginx-proxy:latest
) 또는 alpine
( nginxproxy/nginx-proxy:alpine
) 태그를 사용하지 않는 것이 좋습니다.
해당 태그는 main
브랜치의 최신 커밋을 가리킵니다. 안정성에 대한 약속은 없으며 이를 사용하면 nginx-proxy 설정이 이전 버전과 호환되지 않는 버전(또는 주요 변경 사항이 있는 버전)에 대한 통제되지 않은 업데이트를 경험할 위험에 처하게 될 수 있습니다. 이미지가 업데이트될 때 설정이 중단되지 않도록 하려면 항상 사용하려는 버전을 명시적으로 지정해야 합니다.
문서 섹션을 확인하세요.