[英]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.