当前位置: 首页 > 知识库问答 >
问题:

在Azure web app中运行docker容器:未响应端口上的HTTP ping

璩俊雅
2023-03-14

我正在尝试在linux操作系统中的Azure web app上运行docker容器。web应用服务器正在成功拉取映像,但在执行run命令时失败,错误消息为:未响应端口9000上的HTTP ping

2019-10-22 00:15:12.671 INFO  - Pulling image: finalproductionimg.azurecr.io/finalproductionimg:latest
2019-10-22 00:15:12.877 INFO  - latest Pulling from finalproductionimg
2019-10-22 00:15:12.878 INFO  -  Digest: sha256:5681b69c53e29b42d9c05c8ccf2e849ae19732ee671c5aae388a906c7bb23208
2019-10-22 00:15:12.878 INFO  -  Status: Image is up to date for finalproductionimg.azurecr.io/finalproductionimg:latest
2019-10-22 00:15:12.883 INFO  - Pull Image successful, Time taken: 0 Minutes and 0 Seconds
2019-10-22 00:15:12.891 INFO  - Starting container for site
2019-10-22 00:15:12.891 INFO  - docker run -d -p 26730:9000 --name brisk-dokerprod_0_3f1f06b3 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITE_SITE_NAME=Brisk-dokerprod -e WEBSITE_AUTH_ENABLED=False -e PORT=9000 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=brisk-dokerprod.azurewebsites.net -e WEBSITE_INSTANCE_ID=af378d6c8fb1477b346afda52f53f46802b9685f672a1a6b1e1dfb51b076f0a4 -e HTTP_LOGGING_ENABLED=1 finalproductionimg.azurecr.io/finalproductionimg:latest version: '3' services: web-prod: build: context: . dockerfile: Dockerfile-prod ports: - "80" - "9000" - "8080:9000" 

2019-10-22 00:15:13.492 INFO  - Initiating warmup request to container brisk-dokerprod_0_3f1f06b3 for site brisk-dokerprod
2019-10-22 00:15:13.640 ERROR - Container brisk-dokerprod_0_3f1f06b3 for site brisk-dokerprod has exited, failing site start
2019-10-22 00:15:13.642 ERROR - Container brisk-dokerprod_0_3f1f06b3 didn't respond to HTTP pings on port: 9000, failing site start. See container logs for debugging.

在我的yml文件中,我有

ports:
      - "80"
      - "9000"
      - "8080:9000"

我错过了什么?

共有2个答案

金坚
2023-03-14

谢谢你的回答,基本上这就是Charles Xu所说的。为了解决这个问题,我在Dockerfile中公开了端口80和9000,最后在Azure应用程序设置中添加了两个新变量,port=9000和WEBSITES\u port=80。

鲁炳
2023-03-14

这是Azure Web应用的一个限制,它只支持公开端口80和443。因此,当您想要公开其他端口(如9000和8080)时,会出现错误,即它没有响应该端口上的HTTP ping。

 类似资料:
  • 我想在Linux上的Azure应用服务(容器的网络应用)上使用scrapinghub/spash容器。 但是部署上的docker run命令会随机更改容器端的绑定端口(请参阅下面的日志,端口8961会自动分配。此数字每次部署都有所不同) 2020-01-21 08:56:47.494信息-docker run-d-p 8961:8050-名称b2scraper-splash\u 3\u d89ce

  • 我有下一个问题:我已经在Azure Portal中创建了新的应用服务,并部署了python的docker映像。Docker暴露端口80。但是当应用程序启动时,我在日志中看到: docker run-d-p 80:80--name testapp\u 0\u d2966fc-e PORT=80-e WEBSITES\u ENABLE\u APP\u SERVICE\u STORAGE=false-e

  • 我在将Django应用程序部署到Azure应用程序服务时遇到问题。我在检查日志时遇到错误: 没有响应端口: 8000上的HTTP ping,站点启动失败。请参见容器日志进行调试。 我已经按照这里的说明解决了这个问题,但还是没有运气:https://docs.microsoft.com/en-gb/archive/blogs/waws/things-you-should-know-web-apps-

  • 我已经创建了一个非常简单的discord机器人,并试图在azure上托管它。当我在本地运行它时,它工作得很好。当我部署它时,它可以正常工作一段时间,然后崩溃并重新启动。 我明白了 我没有设置docker,所以我猜azure是为我做的。 我的包裹是这样的 我的代码是这样的。 有人知道解决办法吗?

  • 我有一个简单的rails应用程序,它有一个MongoDB后端。我使用Docker Compose在不同的容器中运行rails应用程序和MongoDB。当我使用默认的rails端口(3000)时,一切正常。 但是,如果我在端口8080上运行rails应用程序,而不是使用,并在我的中使用暴露端口8080,然后重建并推送图像,则只有MongoDB容器启动。我还更改了docker compose中的端口。

  • 我遵循的https://app.pluralsight.com/library/courses/docker-web-development/table-of-contents使用旧的微软/aspnetcore-构建镜像,但我运行核心2.1,所以我使用微软/dotnet: 2.1-sdk代替。 我正在运行的命令是: docker run-it-p8080:5001-v${pwd}:/app-w“/