我的远程虚拟机上有两个 docker 容器,其 IP
X.X.X.X
在我的 docker-compose
文件中:数据库和 WebApi
version: "3.2"
services:
sql_server:
container_name: sqlserver
image: mcr.microsoft.com/mssql/server:2019-latest
ports:
- "1433:1433"
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=password
networks:
- my-network
web_api:
container_name: web_api
image: my-web-api:latest
ports:
- "5000:80"
- "7000:443"
environment:
- ConnectionStrings__SqlConnectionString=Server=sqlserver;Database=data;User Id=sa;Password=password;MultipleActiveResultSets=true;TrustServerCertificate=True;
depends_on:
- sql_server
networks:
- my-network
networks:
my-network:
这工作正常,但我想使用 IP 地址连接 SQL 服务器,我可以使用连接字符串
Server=X.X.X.X,1433;...
从本地计算机访问它,但如果我将此连接字符串放入 docker-compose
:
...
web_api:
...
environment:
- ConnectionStrings__SqlConnectionString=Server=X.X.X.X,1433;Database=data;User Id=sa;Password=password;MultipleActiveResultSets=true;TrustServerCertificate=True;
不起作用。
my-network
的类型是桥式。请帮助我,谢谢!
在此场景中使用 swarm 或 kubernetes 是最佳实践。 docker-compose 适合在本地计算机上运行容器。由于您使用的是远程虚拟机,我认为毫无疑问您会遇到这样的问题。