我在 azure 中有一个运行 docker 容器的应用程序服务。
日志显示它正在使用以下 docker run 命令运行。我隐藏了一些私有(private)公司的值(value)观。
docker run -d -p 4040:443 --name hidden -e WEBSITE_SITE_NAME=hidden -e WEBSITE_AUTH_ENABLED=False -e PORT=443 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=hidden.azurewebsites.net -e WEBSITE_INSTANCE_ID=7d541a8f0aa7702237eea8e36b3c0321166514fdfef681b7755b6e82339b42dd -e HTTP_LOGGING_ENABLED=1 .azurecr.io/tests/hidden:20210310.4
-p 4040:443 在哪里定义的?我希望在 443 上访问它,所以应该是 -p 443:443?
最佳答案
当然不是。正如您在日志中看到的那样,您无法在命令 docker run
中定义端口。端口 4040 是一个随机主机端口,由 Azure 选择。
Azure App Service 只对外公开一个端口,端口号应该是 80 到 443 之间的一个。但是对于应用服务内部的容器,您可以公开任何您想要的端口。如果容器公开的端口与应用服务公开的端口不同,您需要添加环境变量 WEBSITES_PORT 以及您为容器公开的端口的值。
例如容器暴露50000端口,应用服务暴露80端口对外访问。然后需要添加环境变量WEBSITES_PORT
,值为50000。
关于c# - Azure 容器应用服务。 Docker 运行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66656501/