Docker는 7000에서 8000까지의 모든 포트 또는 포트 범위를 노출합니다.


99

Dockerfile에서 포트 범위를 지정할 수 있습니까?

EXPOSE 7000-8000

컨테이너를 실행할 때 이러한 모든 노출 된 포트를 호스트 컴퓨터의 동일한 포트에 바인딩합니까?

docker run -p 7000-8000:7000-8000

답변:


137

Docker 1.5부터 이제 노출 할 수 있습니다. 다음을 사용하여 다른 연결된 컨테이너에 다양한 포트를 .

Dockerfile EXPOSE 명령 :

EXPOSE 7000-8000

또는 Docker 실행 명령 :

docker run --expose=7000-8000

또는 Docker run 명령을 통해 호스트 머신에 다양한 포트를 게시 할 수 있습니다 .

docker run -p 7000-8000:7000-8000


14
호스트 컴퓨터에서 "iptables -L -n"의 출력을 확인하면 단일 포트 매핑에 대해 각각 수백 개의 줄이 표시됩니다. 5000-50000을 주면 사실상 오랜 시간을 기다려야합니다.
ᐅ devrimbaris

8
@ ᐅ devrimbaris 포트별로 실행 되는 도커 프로세스 도 있습니다 . 나는 이것이 대부분의 작업 시간을 차지한다고 믿습니다.
매트

1
문서는 --publish-all , -P"모든 노출 된 포트를 임의의 포트에 게시" 하는 플래그에 대해 설명합니다 . docs.docker.com/engine/reference/commandline/run
nils petersohn

4

이 문제에 직면 하고이 게시물에 도달하는 모든 사람을 위해 ... 문제는 여전히 열려 있습니다-https: //github.com/moby/moby/issues/11185


정말 감사합니다. 수천 개의 포트를 노출하려고 할 때 모든 것이 멈춰서 미쳐 버렸습니다.
sarusso

1000 개의 냄비를 노출시키는 해결책을 찾았습니까? @sarusso
dko
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.