iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
Software Development

剛入職軟體工程師會需要知道的常見工具篇系列 第 20

[Day20] 簡單搞懂Docker Network / Volume設定

  • 分享至 

  • xImage
  •  

昨天簡單跟大家介紹什麼是Dockerfile & Docker-Compose ,今天緊跟著要說的是Network設定&Volume設定,還不熟悉的朋友,如果在debug務必注意這兩個設定~

  • Network

    • 簡單來說,由於每個Container都是獨立的,因此network就是來設定跟不同containers或是可以與外接互通的!
    • 建立network docker network create web_network
    • 刪除network docker network rm web_network
    • 連結已創立的container docker network connect web_network container_1
    • 查看network docker network ls
    • 查看network 連結的containers docker network inspect web_network
    • ps. 如沒有指定network 的類型,default就是Bridge,常用於獨立的Container
  • Volume

    • 簡單來說,就是本地的某個資料夾會跟container裡面的資料是互通的,只要有一方有變動,另一方也會跟著變動,但是當container被刪除時,本地的資料夾還是會在喔

    • 新增volume docker volume create --name web-data

    • 刪除volume docker volume rm web-data

    • 查看volume docker volume ls

    • 情境一:設定本地端的/data 連接container裡的web資料夾

      • 方法一:
        • 直接docker run docker run -v ./data/:/web -it web-data bash
      • 方法二 :
        • 在docker-compose.yml中
        # connect at local file HOST:CONTAINER
        volumes:
          - ./data/:/web
        
    • 情境二:不特別指定本地位置,僅有container的檔案路徑 docker run -it -v /web web-data bash

      • 這時就要先去看docker volume ls 找到 volume name,接著去查找詳細訊息docker volume inspect volume_nameMountpoint會顯示連結檔案的路徑!!
    • 情境三:Container 間共用資料

      • container A 與 container B共用資料
        • container A docker run -it -v /data --name=container1 {哪個服務} /bin/bash
        • container B docker run -it --volumes-from container1 --name=container2 {哪個服務} /bin/bash 就都放在/data資料夾中囉!
  • 參考資料

  1. docker volume inspect
  2. docker network

上一篇
[Day19] 簡單搞懂Dockerfile / Docker-Compose Python實作範例
下一篇
[Day21] 簡單搞懂Docker Swarm是什麼
系列文
剛入職軟體工程師會需要知道的常見工具篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言