gpt4 book ai didi

docker - 无法从群集和主机内部与Docker容器连接

转载 作者:行者123 更新时间:2023-12-02 18:39:59 24 4
gpt4 key购买 nike

我正在组成两个容器,一个包含Web服务,另一个包含数据库。
这是我的撰写文件:

version: '3.3'
services:
web:
image: microsoft/aspnetcore:1.1
container_name: web
ports:
- 5555:80
links:
- db
db:
image: microsoft/mssql-server-linux:rc1
container_name: db
ports:
- 1533:1433
environment:
- "ACCEPT_EULA=Y"
- "MSSQL_SA_PASSWORD=MyAdminPwd2017"
- "MSSQL_PID=Developer"

因此,从运行在 web服务中的asp.net核心应用程序中,我可以使用 db作为主机名访问 db上的数据库。但是 db在主机上不可见(我有默认的桥接网络)。如果我检查正在运行的数据库容器并找到它的ip地址,则可以从主机访问数据库,然后可以连接到 <ip>,1533

事实是, web容器和主机都使用存储用于访问数据库的凭据的文件。因此,我需要一种命名 db的方法,以便可以从两个世界访问(位于主机内部和外部)

有办法实现吗?我尝试在 docker-compose文件中定义一个主机网络,并且两种服务都使用该网络,但是我收到一条消息,说只能定义一个主机网络。

编辑:试图改善问题的标题,但我仍然不相信,欢迎改进

最佳答案

好的,所以,要回答我自己的问题,至少在今天,我想要的东西是不可能的。

有人写了一篇不错的文章,说明为什么我无法实现自己想要的。话虽如此,它在Windows容器中是可行的,但可能是暂时的“限制”。

链接到该帖子:https://derickbailey.com/2016/08/29/so-youre-saying-docker-isnt-a-virtual-machine/
并链接到Docker论坛:https://forums.docker.com/t/access-dockerized-services-via-the-containers-ip-address/21151

关于docker - 无法从群集和主机内部与Docker容器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45515970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com