无法与群集内的Docker容器和主机连接

我正在编写两个容器,一个是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是不可见的主机(我有一个默认桥networking)。 我可以从主机访问我的数据库,如果我检查正在运行的db容器,并find它的IP地址,那么我可以连接到<ip>,1533

事情是, web容器和主机都使用存储访问数据库的凭证的文件。 所以我需要一种方法来命名db这样我就可以从两个世界访问(在我的主机内部和外部)

有没有办法做到这一点? 我试图在我的docker-compose文件中定义一个主机networking,并且两个服务都使用这个networking,但是我收到一条消息,说只有一个主机networking可以被定义。

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

好吧,回答我自己的问题,至less从今天起,我想要的是不可能的。

有人写了一篇很好的文章,为什么我不能达到我想要的。 话虽如此,在Windows Containers中是可行的,但它可能是一个暂时的“限制”。

链接到该post: https://derickbailey.com/2016/08/29/so-youre-saying-docker-isnt-a-virtual-machine/并链接到Docker论坛: https://forums.docker。 COM / T /访问dockerized服务-通过最集装箱-IP地址/ 21151

Interesting Posts