问题标签 [ubuntu-21.04]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
15 浏览

docker - Docker 容器无法访问远程数据库

我的后端包括:

  1. 一个 NodeJS/Express 应用程序,
  2. Redis 服务。

该应用程序依赖于 redis,因此后者总是在 NodeJS 应用程序之前启动。两个容器都被添加到同一个桥接网络。

关键是,在启动两个容器后,NodeJS 应用程序无法从远程数据库中获取数据。exec进入正在运行的容器显示该ping命令报告 100% 数据包丢失,任何尝试apk add挂起 - 换句话说,无法访问网络。resolv.conf显示本地 DNS 地址(127.0-something),与主机服务器中的相同。但是,服务器使用resolvectl并且访问任何外部源都没有问题。

当部署的副本在不同的服务器(Ubuntu 18.04)上运行时,上面的所有检查都会产生相同的输出(100% 丢包、相同resolv.conf的内容等),但应用程序可以访问远程数据库!两个区别:工作后端由 Gitlab 管道部署在 Ubuntu 18.04 服务器上,而不工作后端是手动部署在 Ubuntu 21.04 服务器上。

它可能是具有用户权限的东西吗?两台服务器上相同的端口是开放的,相同Dockerfiles的用于构建。我已经没有什么可能导致问题的想法了。