通常在绑定端口时,我会docker run -p hostport:dockerport ...
,但是我可以在Dockerfile
中指定端口绑定吗?
我正在启动一个侦听端口的服务器。服务器通过cmd行参数获取端口。如果我不必在两个地方重复端口(在docker run
命令和Dockerfile
中)
答案 0 :(得分:7)
在dockerfile
中,您只能使用expose
。 EXPOSE
指令通知Docker容器在运行时侦听指定的网络端口。 EXPOSE不会使容器的端口可供主机访问。
要将Hostport分配给容器,您需要执行publish
(-p
)。或-P
标记发布所有公开的端口。
要自动执行此过程,您可以使用docker-compose
。在docker compose文件中,您可以使用不同的参数编排多个docker run
命令。