>  기사  >  운영 및 유지보수  >  docker는 포트를 어디에서 구성합니까?

docker는 포트를 어디에서 구성합니까?

coldplay.xixi
coldplay.xixi원래의
2020-06-19 09:33:103945검색

docker는 포트를 어디에서 구성합니까?

docker는 포트를 어디에 구성하나요?

docker가 포트를 구성하는 위치:

1. 자동 매핑

# docker run -d -p 80 --name myweb 1311399350/myweb nginx -g "daemon off;"

위의 -p 80은 docker 호스트에서 임의로 포트를 엽니다(docker 포트를 사용할 수 있습니다). View 명령 또는 docker ps에서도 볼 수 있습니다. 여기서는 32768)이 컨테이너의 포트 80에 매핑됩니다. -p 80,将在docker主机上随机打开一个端口(可利用docker port命令查看,或者docker ps也能看到,这里是32768)映射到容器中的80端口上。

2. 指定映射

除了自动映射外,还可以指定映射关系,如:

# docker run -d -p 80:80 --name myweb 1311399350/myweb nginx -g "daemon off;"
# docker port myweb 80
0.0.0.0:80

可以看出,宿主机的80端口映射到容器的80端口。这样的指定有好有坏,好处是端口已知,需要小心使用;坏处是无法运行多个同样的容器,而且容易与宿主机的应用冲突。

3. 公开dockerfile中EXPOSE指令指定的端口

我们在dockerfile中指定了容器暴露的端口或端口范围

EXPOSE 20010
EXPOSE 10011

利用大写的-P参数,将dockerfile中EXPOSE指令指定的端口(容器内端口)对本地宿主机公开,并随机绑定到本地宿主机的端口上。

# docker run -d -P --name myweb 1311399350/myweb nginx -g "daemon off;"

使用# docker port container containre-port

2. 매핑 지정

자동 매핑 외에도 다음과 같은 매핑 관계를 지정할 수도 있습니다. 🎜
# docker port myweb 80
0.0.0.0:32771
🎜호스트의 포트 80이 컨테이너의 포트 80에 매핑되는 것을 볼 수 있습니다. 이러한 지정에는 장단점이 있습니다. 포트가 알려져 있으므로 주의해서 사용해야 한다는 점입니다. 단점은 여러 개의 동일한 컨테이너를 실행할 수 없고 호스트 응용 프로그램과 충돌하기 쉽다는 것입니다. 🎜🎜🎜3. dockerfile의 EXPOSE 명령어로 지정된 포트를 노출합니다.🎜🎜🎜dockerfile의 컨테이너가 노출하는 포트 또는 포트 범위를 지정합니다.🎜rrreee🎜EXPOSE로 지정된 포트를 노출하려면 대문자 -P 매개변수를 사용하세요. dockerfile(컨테이너 포트 내부)의 명령은 로컬 호스트에 노출되고 로컬 호스트의 포트에 무작위로 바인딩됩니다. 🎜rrreee🎜# docker port 컨테이너 containre-port를 사용하여 컨테이너에 매핑된 호스트 포트를 확인하세요🎜rrreee🎜권장 튜토리얼: "🎜docker tutorial🎜"🎜

위 내용은 docker는 포트를 어디에서 구성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.