簡體   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