我们有两台机器......一台是Windows机器,一台是Linux机器。我的应用程序在Linux机器上的Docker Container下运行。我们的数据库在Windows机器上运行。我们的应用程序需要从Windows机器DB获取数据。
因为我们在您的应用程序中提供了适当的数据源详细信息,如IP,用户名和密码。当我们不使用docker容器但是当我们使用docker容器时它不起作用。
任何人都可以帮助我获得这个解决方案,我们如何从Docker启用的应用程序连接外部数据库,因为我们在Docker方面是全新的人。
任何帮助将非常感激。
容器的默认网络是“桥”,你应该选择macvlan
或host
网络。
方法1
docker run -d --net host image
此容器将共享您的主机IP地址,并将能够访问您的数据库。
方法2
使用docker network create
命令创建macvlan网络refrence here
然后通过创建容器
docker run -d --net YOURNETWORK image
容器将具有与其主机相同的网关的IP地址。
有很多问题可能会影响容器与数据库通信的能力。在将来,您应该尽可能详细地撰写您的问题。要正确回答这个问题,您至少需要包含以下详细信息:
docker inspect
您的Windows计算机是否与Linux计算机在同一本地网络/子网上运行?如果是,请提供有关子网的信息,因为Docker设置的默认网桥可能会限制对本地资源的访问,而广域网上的网桥仍然可以访问。
您可以尝试将--network=host
选项传递给docker run
命令,如下所示:docker run --network=host <image name>
。这样做无需在运行命令中指定端口映射,因为在使用主机网络时会忽略它们。
请编辑您的问题并提供上述要求的详细信息以获得完整的答案。