繁体   English   中英

Docker:linux 和 window 容器之间的网络

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM