docker - docker compose 内部的 Docker 通信以及与 docker 外部的数据库的通信
问题描述
我对 docker 和网络通信有点困惑。我尝试了很多东西,但没有奏效:-(。
我有以下 docker compose:
version: '3'
services:
nginx:
container_name: nginx
image: nginx:stable-alpine
restart: unless-stopped
tty: true
ports:
- 80:80
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d:ro
depends_on:
- app
networks:
- frontend
- backend
app:
restart: unless-stopped
tty: true
build:
context: .
dockerfile: Dockerfile
container_name: app
expose:
- "9090"
ports:
- 9090:9090
networks:
- backend
networks:
frontend:
backend:
我想交流:
- 从 nginx 到应用程序//这可能有效
- 从应用程序到安装在服务器上的 postgreSQL(无 docker 容器)
我不能这样做,我尝试了很多东西,但是出了点问题:-(
解决方案
您可以选择以下两个选项中的任何一个:
- 让你的 postgresql 监听你所有的网络接口(或 docker 桥以获得更安全但更复杂的设置),以实现你需要确保你的配置看起来像这样:
# grep listen /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'
- 在 docker compose 中使用主机网络模式,它在主机网络名称空间中运行 docker,而不是创建新网络:
network_mode: "host"
推荐阅读
- python-2.7 - 创建一个类似视频游戏的对话框,逐字母显示格式化文本
- html - 我无法编辑 scss 文件(因为我找不到它)
- javascript - 在 nodejs 中使用 RXJS 进行批量数据调用
- r - 替换 r 中每个相关列的 NA 值
- java - 如何在 Dropwizard/Jersey 中保持长期运行的 HTTP 连接处于活动状态?
- python - DiscordPy,未定义的变量通道
- python - 在 python3.7 中的 concurrent.futures 中,futures.wait 不会超时
- angular - 单击添加按钮时使用删除按钮动态创建文本Angular 4
- javascript -
返回“初始化前无法访问 ${fn}”,但是 作品 - angular - 尝试通过 http 请求从 json 文件加载数据