我有一个自定义 SQL Server Docker 映像,我想将其添加到我的 Aspire 项目中。该映像公开端口 1433。如何将其绑定到 Aspire 分配的端点?一旦我开始工作,我计划以类似的方式添加其他与 SQL Server 无关的容器。
像这样配置它会运行容器,但不会绑定端点的端口:
builder.AddContainer("custom-sql-container", "my.sql.image")
.WithEndpoint(1433, 1433);
我正在查看 docker 桌面中的容器,它根本没有显示绑定端口:
但是
docker ps
给了我这个辛辣的小金块:
所以它绑定了端口,只是不是我期望的那样。这是否意味着 aspire 尚未为该端口设置代理,或者我完全误解了应该如何配置它?
默认情况下,SQL Server 仅侦听环回接口 [127.0.0.1] 或 [0.0.0.0] 上的连接。这意味着即使端口暴露于 Aspire 分配的端点,任何试图访问您的 SQL Server 实例的外部连接也将无法找到它。
分辨率: 您可以在用于连接到 SQL Server 实例的连接字符串中使用 127.0.0.1 作为主机名。