Docker networks

Docker ระดับกลาง

Mike Metzger

Data Engineering Consultant

Docker networking

  • Docker มีตัวเลือกด้านเครือข่ายที่หลากหลาย
  • สร้างเครือข่ายเพื่อสื่อสารระหว่าง container, host และระบบภายนอกได้
  • จะครอบคลุมคำสั่งต่าง ๆ สำหรับจัดการเครือข่าย
Docker ระดับกลาง

ประเภทของ Docker networking

  • Docker รองรับประเภทเครือข่ายหลายแบบผ่าน driver
    • bridge: driver เริ่มต้น เชื่อมต่อออกได้ และรับการเชื่อมต่อเข้าได้หากมีการ expose
    • host: อนุญาตให้สื่อสารระหว่าง host และ container ได้อย่างเต็มที่
    • none: แยก container ออกจากการสื่อสารในเครือข่าย
    • มีแบบอื่นอีกหลายแบบ รวมถึง custom driver
  • ส่วนใหญ่จะใช้ bridge driver เพื่อสร้างเครือข่ายของตัวเอง
Docker ระดับกลาง

การทำงานกับ Docker networks

คำสั่งที่เกี่ยวข้อง:

  • docker network
    • docker network <command>
    • docker network <command> --help
    • docker network ls สำหรับแสดงรายการเครือข่าย Docker ทั้งหมดบน host
    • docker network create สำหรับสร้างเครือข่าย
    • docker network rm สำหรับลบเครือข่าย
Docker ระดับกลาง

ตัวอย่าง Docker network

  • สร้าง Docker network ชื่อ mynetwork
    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 ระดับกลาง

การเชื่อม container เข้ากับเครือข่าย

  • เชื่อม container เข้ากับเครือข่ายได้อย่างไร?
  • docker run --network <networkname> ...
  • docker run --network mynetwork ubuntu bash
  • เชื่อม container ทีหลังก็ได้
    • docker network connect <networkname> <container>
    • docker network connect mynetwork ubuntu-B
Docker ระดับกลาง

docker network inspect

  • ตรวจสอบรายละเอียดของเครือข่ายได้อย่างไร?
  • docker network inspect <networkname>
  • แสดงข้อมูลการกำหนดค่าและ IP address ที่กำหนดให้แต่ละ container
    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...