簡體   English   中英

有沒有辦法取消 Dockerfile 中的端口?

[英]Is there a way to unexpose a port in Dockerfile?

我正在嘗試通過 docker 圖像在我們的企業雲中部署一個 mosquitto MQTT 代理。 允許暴露的端口在10000-10999范圍內。 默認情況下,eclipse-mosquitto 圖像公開端口 1883。有沒有辦法取消公開端口 1883 並公開 10883? 這是我的Dockerfile

FROM eclipse-mosquitto:latest

COPY mosquitto.conf /mosquitto/config/
COPY docker-entrypoint.sh mosquitto-no-auth.conf /
EXPOSE 10883
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/sbin/mosquitto", "-c", "/mosquitto/config/mosquitto.conf"]

僅僅因為容器公開了端口 1883,並不意味着您需要使用該端口來訪問正在運行的實例。

當您使用docker run命令啟動容器時,您可以決定將主機上的哪個端口映射到容器上的該端口。

例如

docker run -d -p 10883:1883 eclipse-mosquitto

這會將主機上的端口 10883 和容器上的 map 端口暴露給 1883。

dockerfile 中的“公開”是一種元數據,它告訴您應該使用哪個端口。 它不打開任何端口。 所以你可以很容易地打開你想要的任何端口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM