2016-08-16 2 views
2

Docker를 사용하여 nginx 환경을 구축하고 있습니다. 나는 (그것이 (중급) 컨테이너에있는 서버에 대한 네트워크 액세스를 필요로하는) ​​빌드시에 letsencrypt가 실행될 수 있도록 빌드하는 동안 포트 (80, 443)를 공개하는 것을 폭로 할 수 있는지 궁금합니다.Docker가 빌드 중 포트를 게시합니다.

이것이 가능합니까?

+0

정말로 인증서에 인증서를 넣고 싶지는 않습니다. – Auzias

+1

te Image를 게시하려면 동의합니다. 그래도 데이터 컨테이너를 사용하는 것이 좋습니다. 그러나 빌드하는 동안 포트를 게시하는 것이 유용하거나 빌드를 사용하여 실행되는 중간 컨테이너에 docker 실행 옵션을 전달하는 사용 사례를 여전히 상상할 수 있습니다. –

+0

게시 포트를 설정하지 않고 인증서에 대해 말하고있었습니다. 이제 ... Docker 이미지가 특정 포트 (빌드시 설정)를 강제로 사용할 수 있다고 가정 해 봅시다. 이 특정 포트에서 이미 실행중인 서비스가있는 경우 어떻게해야합니까? 또는이 특정 포트에 방화벽이 설치되어 있습니까? IMO, 모든 서비스는 기본 포트를 변경할 수 있어야합니다. – Auzias

답변

3

나는 결코 그것을 보지 못했다. 나는 그것이 디자인 상으로는 가능하지 않다고 생각한다.

  • 당신은 당신이 2 달 후에 다시 보장 라이센스에해야 할 수도 있습니다 전체 이미지를 일반적으로

를 재 구축 할 필요가

  • 는, 이것이 이미지의 비밀 키를해서는 안 때로는 조수라고 불리는 동반자를 사용하여 완료되었습니다. 당신은 기본적으로 앱 (그리고 그 컨테이너)과 letsencrypt 컨테이너를 가지고 있는데, nginx가 마운트 한 볼륨을 노출 시키려면이 볼륨을 volume_from으로 사용하면 letsencrypt 컨테이너가 가져온 인증서를 넣는 것입니다. 이미지를 만드는 동안이 아니라 이미지가 시작되는 동안 발생합니다. 도커 작성 파일을 사용하여 필요한 모든 것을 구성합니다.

    예. 여기 A) https://github.com/rancher/community-catalog/blob/master/templates/letsencrypt/2/docker-compose.yml B) 또는 http://letsencrypt.readthedocs.io/en/latest/using.html#running-with-docker 모습을 가질 수

    가) 당신이 어떤 파일을 제공하지 않는, 아주 잘 고정 표시기-작성 방법 스위트 것이다 당신은 ENV 변수를 사용하여 원하는하고자하는 도메인을 정의 할 수 있습니다 호스트의 구성과 같이 (휴대용으로 유지).

    이 모든 것을 nginx-server에 넣을 수는 있지만 여러 가지 이유로 (예 : nginx를 구성해야하는 경우) 가장 좋은 방법입니다. 당신이 대안은 DNS 모드를 확인하여, 그래서 대신 포트에 연결 백을 사용하여 확인한다, "시간이 구축"에 충실하려는 경우


    , 당신은 오히려하는 DNS-항목을 사용하여 몇 가지 링크를 확인 당신이 http://cloudflare.com을 선택 할 수있는 A) 컨테이너가이 시나리오의 경우이

    를 않습니다 - - https://github.com/lukas2511/letsencrypt.sh/wiki/Examples-for-DNS-01-hooks - 그 에 대한 AFAIK는 무제한 도메인 무료 API에 액세스 할 수있는 유일한 DNS 서비스입니다, 다른 어떤 비용 돈이나 한계가있다 하나 .

  • 관련 문제