[英]Docker: network between linux and window container
我有一个带有 asp.net webapi 应用程序(非核心)的 window 容器和带有 sql 服务器的第二个(linux)容器。
在 linux 容器中,我创建了新网络:
docker network create budget-app-network
并创建容器:
docker run -d --name budget-db -p 11433:1433 --network budget-app-network --network-alias mssql budget-db
当我想通过使用启用 window 容器时:
docker run -d --name budget-app -p 888:80 --network budget-app-network budget-app
我收到一个错误说:
docker: Error response from daemon: network budget-app-network not found.
我找不到如何将 web api 连接到数据库。 我该如何沟通? 我相信如果我有两个 linux 或两个 windows 容器并且不混合它们,它会起作用。
当您在 windows 主机上运行 Windows 和 Linux 容器时,您有两个 Z05B6053C15A213E468BDAFC3 引擎正在运行。 一个引擎在 windows 上本地运行并运行 windows 容器,另一个引擎在运行 linux 的虚拟机 (Hyerp-V) 中继续运行。 这在 github 上的以下线程中进行了讨论
因为它们在不同的主机上运行,所以您需要以相同的方式管理网络。
最简单的方法是允许容器通过发布的端口进行通信,通过 windows 主机(通过主机的公共 IP 路由流量)。
此外,您可以按照本文所述使用docker-compose ,并允许 docker-compose 在 VM 容器和 windows 容器之间创建网桥。
最后,您可以选择通过安装 linux 和 windows VM(Hyper-V)来创建集群并创建混合操作系统集群。 这是最复杂的选项,缺点是在 hyper-v 中运行的额外 windows 机器将产生额外开销。 详细信息在 Microsfot 的文档中进行了描述
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.