iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
DevOps

從0開始學習DevOps,並部署CICD至Java專案中系列 第 11

Docker 的 network 是什麼呢?

  • 分享至 

  • xImage
  •  

network 有什麼用途呢?

因為docker 中的 container 是相互隔離的,所以在不同的container中想要能夠互相連接,就需要把這些 container 都設定為同一個 network(網絡),就像是一個橋接的角色,把本來兩個不相關聯的container透過network能夠關聯在一起,這樣才能彼此連接通信。

docker network 有哪些模式呢?

預設會產生bridge / host / none 三種 network

bridge 橋接模式

為docker默認的預設網絡模式,在bridge模式下,docker container可以連接到同一網絡上的其他container。

# 配置容器的主機名
docker run --name <自定義container_name> --network bridge -h <自定義主機名> -it --rm testNetwork

host 宿主機模式

不會為container創建自己的IP,container會與主機共享相同的網絡,因此可以使用主機的IP位址,外部主機就可以與這個container直接連接。(但要特別留意port號是否有與主機衝突)

可使用以下方式拜訪 → localhost:port 或 <主機IP地址>:port
https://ithelp.ithome.com.tw/upload/images/20230926/201620582Xu01g7yed.png

none

較少使用,主要是不會為container分配IP位址,通常用於不需要網絡連接的container。詳請可瀏覽官方說明

Docker network 指令

使用 docker network --help 可查看可使用的指令

 	connect     Connect a container to a network 
# 創建一個 network 預設會是 bridge 橋接模式
# docker network create <network_name>
  create      Create a network
  disconnect  Disconnect a container from a network
# 查詢指定的 network 詳細資訊,會列出當中有哪些container
# docker network inspect <network_name>
  inspect     Display detailed information on one or more networks
# 列出所有 network
  ls          List networks
  prune       Remove all unused networks
# 刪除指定的 network
  rm          Remove one or more networks
  • 查詢所有network 清單
docker network ls

https://ithelp.ithome.com.tw/upload/images/20230926/20162058mHkAHQnelS.png

  • 刪除network 使用 docker network rm <network id 或 network name>
  • 確認某一個network 目前狀態以及network中的container
docker network inspect goal-life_web_app

https://ithelp.ithome.com.tw/upload/images/20230926/20162058olFy5aezF2.png


上一篇
配置Java Web 連接MySQL Container
下一篇
建立Docker Compose來管理多個服務的環境,結合Network
系列文
從0開始學習DevOps,並部署CICD至Java專案中30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言