簡體   English   中英

Docker 組合不公開應用程序容器的端口

[英]Docker compose not exposing port for application container

我已經在我的應用程序容器的 dockerfile.yml 中公開了端口 80,並在我的 docker-compose.yml 中映射了“80:80”,但是在我執行“docker-compose up”並嘗試在我的 docker 機器的 IP 地址上的端口 80 上執行 HTTP GET。 我的 docker hub 提供的 RethinkDB 實例的管理面板通過相同的 dockerfile.yml(“EXPOSE 8080”)和 docker-compose.yml(端口“8080:8080”)以及當我在本地開發機器端口上啟動應用程序時映射得很好80 按預期暴露。

這里可能出了什么問題? 我將非常感謝任何具有更多 docker 經驗的人的快速見解!

因此,在我的例子中,我的服務容器都綁定到本地主機 (127.0.0.1),因此似乎從未通過我的 docker-compose 端口映射獲取暴露的端口。 我將我的服務配置為分別綁定到 0.0.0.0,現在它們可以完美運行。 感謝@creack 為我指明了正確的方向。

就我而言,我正在使用

docker-compose run app

顯然

docker-compose run 命令不會創建服務配置中指定的任何端口。

請參閱https://docs.docker.com/compose/reference/run/

我開始使用

docker-compose create app
docker-compose start app

問題解決了。

就我而言,我發現我嘗試設置的服務的所有網絡都是internal: true 奇怪的是,它在執行docker stack deploy時沒有給我任何問題

我已經打開了https://github.com/docker/compose/issues/6534來請求正確的錯誤消息,這樣其他人就會很明顯。

如果您使用相同的 Dockerfile,請確保您還公開了端口 80 EXPOSE 80 ,否則,您的 compose 映射80:80將不起作用。 還要確保您的 http 服務器偵聽0.0.0.0:80而不是 localhost 或其他端口。

暫無
暫無

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

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