---
# System prepended metadata

title: 實現在不同的docker主機容器間的網路連通

---

# 實現在不同的docker主機容器間的網路連通
## 工具
- docker overlay
- consul
## 情境
在公司專案中需要同時用到windows與linux的docker環境，並且其中的容器可以互相溝通，因為windows container的特性，目前無法將web.config掛載出來，所以每次更該設定檔都要重新建置，需求是將服務網以service name的方式寫入設定檔，減少修改次數。

## Docker overlay介紹
Docker overlay 是一種 Docker 引擎內建的網路驅動程式，它可以在 Docker 集群中創建跨主機的網路。Overlay 網路驅動程序使用 VXLAN 技術，可以將多個 Docker 主機上的容器連接在同一個虛擬網路中，從而實現容器之間的通信。

使用 Docker overlay 網路，你可以輕鬆地將多個 Docker 主機上的容器連接起來，形成一個虛擬的容器網路。這個虛擬的容器網路可以跨越多個 Docker 主機，使容器之間可以像在同一台主機上一樣互相訪問。

## consul介紹
Consul 可以與 Docker overlay 網路集成，以提高容器的服務發現和配置管理能力。具體來說，Consul 可以在 Docker overlay 網路中註冊服務實例，並為這些服務實例提供健康檢查和配置管理等功能。

通過與 Docker overlay 網路集成，Consul 可以使容器更加智慧化和自動化。例如，當容器啟動時，它可以自動將自己註冊到 Consul 服務目錄中，並定期向 Consul 發送健康檢查請求。如果容器發生故障或不健康，Consul 可以自動將其從服務目錄中刪除，以避免用戶端訪問到不可用的容器。

另外，Consul 還可以為容器提供配置管理功能。通過 Consul 的 Key-Value 儲存，容器可以輕鬆地獲取最新的配置訊息，並自動更新自己的配置。這樣，當配置訊息發生變化時，容器可以自動感知並重新配置自己，從而實現更加智慧化和自動化的容器管理。

## 實作
### 預先準備
- AP的Docker image
- Docker主機


