使用docker-compose构建时,为什么默认情况下dotnet Console不在网络内部运行?

时间:2018-06-19 13:24:47

标签: .net docker .net-core docker-compose dockerfile

我有一个docker-compose.yaml文件,该文件定义了一个名为mynetwork的网络内部的数据库服务器的映像。我还为dotnet控制台应用程序定义了一个定义,该应用程序也使用networks语法引用了相同的网络,并使用链接语法将服务结合在一起(不确定第二部分是否必要)。

这一切都很好。我使用docker-compose build构建映像,并以分离模式运行数据库。然后,我可以运行控制台应用程序,并通过使用docker-compose中定义的名称引用数据库服务器来打开与数据库的连接。但是,只有使用--network选项运行应用程序时,我才能这样做。我认为,通过在mynetwork下为我的docker-compose文件的控制台应用程序组件指定networks,它将“只是知道”在运行时加入适当的网络,而不是我每次都要指定(这使命令非常冗长)。

当我将.NET Core WebAPI托管为同一docker-compose(也指定mynetwork)的一部分时,它可以正确加入网络,并且可以与数据库进行通信。这归咎于控制台应用程序的“一次性”特性吗?还是我被迫通过docker run而不是docker-compose up使用它的事实?

0 个答案:

没有答案