外部docker容器之间的通信

问题描述 投票:0回答:1

我的远程虚拟机上有两个 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
的类型是桥式。请帮助我,谢谢!

docker docker-compose docker-networking
1个回答
0
投票

在此场景中使用 swarm 或 kubernetes 是最佳实践。 docker-compose 适合在本地计算机上运行容器。由于您使用的是远程虚拟机,我认为毫无疑问您会遇到这样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.