我很担心" - 曝光" Docker中的选项,我不知道它实际上会做什么。
当我在" docker run ..."中指定它(例如, - exp = 1234)时,端口将在哪里曝光?我不认为我可以访问主机端口,如果我想要,我认为我需要的是" -p",那么" - 暴露"会真的吗?
我想如果我想从主机访问容器端口,我需要的是,让容器中的服务监听端口,使用" -p" " docker run"中的选项在主机上发布端口。或者在这种情况下,我仍然需要使用" - 曝光"暴露端口?
答案 0 :(得分:2)
-p
将允许您映射已经EXPOSE的端口(在Dockerfile中设置)。
但是如果该端口在Dockerfile及其生成的图像中没有EXPOSE,您仍然可以使用--expose
公开它:
来自docker run:
EXPOSE
指令定义了提供服务的初始传入端口。这些端口可用于容器内的进程。操作员可以使用--expose
选项添加到公开的端口。
这是一种通过在运行时公开该端口来覆盖图像定义(不暴露端口)的方法。
实际上"覆盖"是PR 14625和PR 15675中提到的错误术语:
除
EXPOSE
指令外,图像开发人员还没有 对网络有很大的控制权。EXPOSE
指令定义了 提供服务的初始传入端口。这些端口可用 容器内的过程。
运营商可以使用--expose
选项添加到公开的端口。
("在这里添加"关键:您可以在运行时声明其他端口)
正如我在评论中提到的,这与EXPOSE
端口上的活动无关(它不能保证进程正在监听容器内的端口)
它只是一种声明open port的方法,即接收数据包的端口。