【发布时间】:2020-07-12 19:30:20
【问题描述】:
这里是docker compose的部分
ecommerce.supplier:
container_name: supplier
image: ${DOCKER_REGISTRY-}ecommercesupplier
build:
context: .
dockerfile: ECommerce.Supplier/Dockerfile
ports:
- "5000:80"
- "5001:443"
env_file: ECommerce.Common/Common.env
environment:
- ConnectionStrings__DefaultConnection=Server=host.docker.internal\MSSQLSERVER01;Database=ECommerceSupplier;User Id=sa;Password=123456;MultipleActiveResultSets=true
restart: on-failure
volumes:
- ./.aspnet/supplier/DataProtection-Keys:/root/.aspnet/DataProtection-Keys
networks:
- ecommerce-network
这是该服务的 Docker 文件的一部分,它公开了端口。该文件由 Visual Studio 自动生成。
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
这里是 docker ps:
那么这一切的结果是什么。当我使用带有正确令牌的 get 请求点击 http://localhost:5000/api/V1/Supplier/getlist 时,我收到了响应。但是,如果我尝试使用 https://localhost:5001 的相同端点,我会在邮递员中收到“无法得到任何响应”。
如何让它在 https://localhost:5001 上运行。我在开发运营方面的水平是初学者,所以如果您想了解更多信息,请考虑仔细解释您到底需要什么。
请注意,屏幕截图中的所有服务都会发生这种情况。
【问题讨论】:
-
什么端口 docker 文件暴露是无关紧要的。您的 docker-compose 文件将 localhost:5000 指向容器端口 80,将 localhost:5001 指向容器端口 443。如果 localhost:5001 不起作用,则最可能的原因是在该容器中运行的应用程序未侦听端口 443 .
-
你应该进入 docker 并在 443 上卷曲它(从 docker 内部)。可能在启动 Web 应用程序时仅使用端口 80 上的绑定。如果你的 docker 绑定 5001->443 的事件,Web 应用程序不接受 443 上的请求。
-
@ddfra 你能告诉我如何在 443 上卷曲它,因为我在 linux 中的知识低于 0。我的链接也可以,我尝试研究它,但我没有成功 10分钟。我使用 docker exec -it af bash 进入 bash
-
如果你有一个主页,那么“curl localhost:443”就足够了。它是网站还是 API 服务器? (堆栈溢出就是去掉curl命令中的https://)