Ara*_*ash 2 azure docker docker-compose asp.net-core visual-studio-2017
我在Visual Studio 2017中成功地对.net core 2.2 Web API应用程序进行了docker化。该应用程序的一部分应该将一些数据存储到与VS 2017运行所在同一台计算机上运行的Azure存储模拟器。仿真器的配置如下所示:
<services>
<service name="Blob" url="http://127.0.0.1:10000/"/>
<service name="Queue" url="http://127.0.0.1:10001/"/>
<service name="Table" url="http://127.0.0.1:10002/"/>
</services>
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml文件具有以下网络定义:
build:
context: .
dockerfile: MyWebApi\Dockerfile
network: host
Run Code Online (Sandbox Code Playgroud)
我可以在https://127.0.0.1:44315/api/values查看Web api的输出
根据我的理解,“主机”网络配置通过将容器的主机IP地址分配给容器来完成其工作,到目前为止,这似乎还不错。问题是,尽管有上述配置,为什么容器中的dockerized Web应用仍无法与仿真器通信。此练习中缺少什么?
据我所知,Azure存储模拟器绑定在仅限本地的网络配置中,Windows版Docker在使用Hyper-V的VM中运行。
恐怕解决方案是在开发时使用microsoft / azure-storage-emulator映像并将您的API指向它。
更新资料
您也可以尝试使用连接字符串中的主机host.docker.internal而不是127.0.0.1主机(这也可以让您使用主机上运行的仿真器而不是容器)。
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
584 次 |
| 最近记录: |