Docker 網路

Docker 中級

Mike Metzger

Data Engineering Consultant

Docker 網路功能

  • Docker 提供完整的網路選項
  • 可建立網路供容器、主機與外部系統通訊
  • 將介紹與網路互動的多種指令
Docker 中級

Docker 網路型態

  • Docker 以驅動程式支援不同網路型態
    • bridge:預設驅動,允許對外連線;若有暴露埠,亦可從外部連入
    • host:容許主機與容器完全通訊
    • none:將容器與網路通訊隔離
    • 另有許多其他選項,包含自訂驅動
  • 本課多使用 bridge 驅動建立自有網路
Docker 中級

操作 Docker 網路

常用指令:

  • docker network
    • docker network <command>
    • docker network <command> --help
    • docker network ls 列出主機上的所有 Docker 網路
    • docker network create 建立網路
    • docker network rm 移除網路
Docker 中級

Docker 網路範例

  • 建立名為 mynetwork 的 Docker 網路
    repl@host:~$ docker network create mynetwork
    
5ff0febab98f73b74dd753eb44a30f7d7291052b3b1d58b0134589221cb8e33d
repl@host:~$ docker network ls

NETWORK ID NAME DRIVER SCOPE 2edc5ae4838c bridge bridge local a92988382711 host host local 5ff0febab98f mynetwork bridge local 5464ed866dad none null local
Docker 中級

將容器連接到網路

  • 如何將容器連上網路?
  • docker run --network <networkname> ...
  • docker run --network mynetwork ubuntu bash
  • 也可之後再連接容器
    • docker network connect <networkname> <container>
    • docker network connect mynetwork ubuntu-B
Docker 中級

docker network inspect

  • 如何查看網路詳細資訊?
  • docker network inspect <networkname>
  • 會提供設定資訊與分配給容器的 IP 位址
    repl@host:~$ docker network inspect mynetwork
    
Docker 中級

docker network inspect 範例

        "Name": "mynetwork",
        ...
        "Driver": "bridge",
        ...
        Containers": {    "2be08aa942029191350d4bceb8816254af8713dd6f7dcbadcab8f068f7dbfdfa": {
                "Name": "unruffled_kare",
                "EndpointID": "29739356ae200e1e901d2eabef05efaca0fb37e1a4e1a4c3bf369f2892ca6c4b",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
Docker 中級

一起來練習吧!

Docker 中級

Preparing Video For Download...