如何将端口公开给主机的临时端口并将其绑定到本地主机

时间:2019-11-06 07:55:03

标签: docker docker-compose

Docker撰写问题(任何版本都可以)

我需要将容器中的端口60000暴露给主机的临时(随机)端口,并将其仅绑定到本地主机。

语法

ports: 
   - 60000

导致端口暴露0.0.0.0:32XXX。

语法- "127.0.0.1:YYYY:60000"要求我设置静态主机端口(YYYY)

我知道我可以将docker daemon绑定为仅在localhost上侦听,但这对我来说真的不起作用,因为我需要另一个容器在0.0.0.0上侦听

1 个答案:

答案 0 :(得分:0)

如果您显示的语法不起作用,则Docker Compose 3.7无法做到这一点(但是添加它可能是一个相当简单的GitHub pull请求)。 (还请注意,docker run文档中记录了此语法 ;这只是Compose中的解析问题。)

最好的解决方法可能是自己选择一个“公共”端口。如果您要调整围绕docker run -p 127.0.0.1::60000甚至docker run -P构建的工作流,那将比较棘手。

Docker Compose的实际源代码在GitHub docker/compose存储库中。其中包括用于docker-compose.yml文件的configuration schema和用于处理ports:内容的ServicePort.parse方法。字符串的parse方法似乎不支持丢失的已发布端口(我不确定为什么),并且该模式不允许long syntaxexternal_ip:选项