iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Cloud Native

docker系列 第 15

Day15 Docker Network

  • 分享至 

  • xImage
  •  

在前文中,我們介紹了 Docker 的基本使用和 Volume 的應用。現在,我們將進一步探討 Docker 中的另一個關鍵元素 - Network。

在過去,許多服務都是採用單體架構(Monolithic),即整個應用程式都包含在一個單一的包中,包括服務、測試等等。然而,當出現問題並需要修復時,可能需要操作整個包,牽涉的範圍就變得非常廣泛。

為了解決這個問題,有人提出了微服務的概念。簡單來說,微服務是將原本的單體架構拆分成各個單元,例如資料庫或其他小單元,每個單元運行在各自的運行環境中,再通過網路將它們聯繫在一起。這樣的好處是,如果其中一個服務掛掉,整個系統至少還在運行,可以避免全面停擺。同時,在更新和維護時,可以針對各個部分進行單獨的操作。

要將各個微服務要聯繫起來,就離不開網路。因此,Docker 提供了 Network 來連接不同的 Container。

在 Docker 中,如果各個 Container 要連結到 Network,有兩種方式:

  1. 先建立好 Network,然後讓各個 Container 連結。
  2. 先開好 Container,然後使用 Network 連結各個 Container。

我個人通常使用第一種方式,因此這篇主要介紹第一種方式。

首先,我們需要建立一個 Network。可以使用以下指令:

docker network create --driver bridge <network_name>
# 範例
docker network create --driver bridge test

建立好之後,我們就可以讓 Container 連結到這個 Network:

docker run --net=container:<network_name> <image_name>
# 範例
docker run --net=container:test my-project

只需依序將各個 Container 連結到 Network 就可以實現它們之間的互相溝通。
如果需要管理 Network,可以使用以下指令:

# 列出所有的 Network
docker network ls

# 刪除 Network
docker network rm <network_name>

# 刪除不使用的 Network
docker network prune

需要注意的是,Docker 有三個預設的 Network,請小心不要刪除它們。


上一篇
Day14 Docker Volume
下一篇
Day16 Docker-Compose 1
系列文
docker30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言