我是Docker世界的初学者。我已经创建了一个 ASP.net Core Web API,并使用 PostgreSQL 在localhost上成功运行。 现在,我已将WebAPI添加到Docker容器中。我使用的是Windows 10,Visual Studio 2015,Docker for Windows 10和Powershell。现在的问题是,我无法弄清楚以下内容。
当我尝试调用API时,它会出现" Connection refused" 错误。数据库连接失败。我相信它是因为容器内没有DB。我无法找到适合初学者理解这个程序的方法。任何有关步骤的帮助都会非常有用。
答案 0 :(得分:4)
您希望在单独的容器中运行每个应用程序,否则您最终会遇到与之前相同的应用程序。
但是你必须使用网络将容器连接在一起。
这样做的步骤:
docker network create bride-network
postgres
的容器。确保将其添加到网络:--network bridge-network
--network bridge-network
现在,您的应用程序可以使用主机名http://postgres
(基本上为http://[container-name])到达postgres数据库。
要在1中执行此操作,您可以创建docker-compose.yml文件并运行docker-compose -f yourfile.yml up
一次创建所有内容
docker的想法是1个容器运行1个应用程序。当此过程停止时,docker知道容器已停止/死亡。如果您在1个容器中添加多个应用程序,则docker将无法知道。也可能是应用程序产生问题,例如:如果两个应用程序都注册收听相同的端口会怎么样?
另一个问题是你想扩大规模:创建重复的容器。那么你想用你的应用程序扩展数据库1 = 1吗?那么你的唯一真相来源是哪里?
所以你每个容器拆分1个应用程序: