如何从容器公开端口并从主机读取它

时间:2019-10-24 15:16:51

标签: docker

我正在创建docker映像,我需要从容器中公开端口。构建映像时,我需要从变量文件(类似于.env文件)中读取端口。这是我的Dockerfile

java.util.logging.Logger

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您无需将此参数设置为可参数化。选择一个端口号(例如,您的语言框架的非特权HTTP服务使用的“默认”端口),然后在Dockerfile中对其进行硬编码。如果操作员希望选择其他端口进行发布,他们将知道docker run -p选项的第二个数字是什么。

# Dockerfile
...
EXPOSE 8000
CMD ["myserver", "-addr=0.0.0.0:8000"]
# The second port number 8000 is a fixed property of the image
# The operator can pick any number for the published port
docker run -p 3333:8000 ...

您应该能够在多个环境中重新运行相同的映像;如果需要重新构建映像以在其他地方运行,请考虑尝试创建需要在运行时更改映像输入的属性,例如环境变量,而不是您在Dockerfile中修复的内容。