docker - 在另一个 docker 容器中访问一个 docker 容器的 localhost 端口
问题描述
我想通过使用从 service2 容器内部访问 service1 localhost:5432
。怎么能这样?
这是我的 docker compose 目前的样子:
services:
service1:
image: postgres:12
ports:
- '172.10.1.1:5432:5432'
expose:
- '5432'
environment:
- POSTGRES_USER=project
- POSTGRES_PASSWORD=pass
volumes:
- db_data:/var/lib/postgresql/data
service2:
build: .
ports:
- '172.10.1.1:1234:1234'
请注意,我知道我可以通过使用service1:5432
或仅访问它service1
。但如果可能的话,我想使用localhost
。
解决方案
这是不可能的,因为每个容器都有自己的 ip。
但是有一个解决方法:将网络设置为主机。因此这些端口在主机上是开放的,并且可以通过127.0.0.1
. 不能在 Windows 上工作。
但我不知道你为什么喜欢使用localhost
postgres 的任何充分理由?您是否尝试通过身份验证localhost
?不要那样做 - 改用密码。
推荐阅读
- javascript - 有没有办法在反应功能组件中另一个值发生变化时自动重新渲染一个 div
- wso2 - 我可以使用 WSO2 身份服务器来限制 MQTT 订阅者可以收集的主题吗?
- javascript - 使用 Kendo 2020 上传拖放 Outlook 电子邮件问题 - 删除收件箱中的电子邮件
- firebase - Flutter:从 TextField 获取值并在函数中使用它们
- kotlin - 为什么类型转换器不起作用?机器人房间
- laravel - 数据库中的混合时区,指定哪些列存储在 UTC 与本地时区
- android - 有什么方法可以打开从 android /data/data 中提取的 .db 文件?
- python - 如何通过 Python 中的 id 呈现 django CMS 插件的 HTML
- asp.net-core - dotnet core 生成带有数据种子的迁移脚本
- c++ - 子模块:如何将 C++ 模块划分为子模块