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