การเปลี่ยน Bridge IP ของ Docker

IP ของ Docker โดย Default เป็น Private IP Class B มันจะมีปัญหา Network ที่ใช้ Private IP Class B
ในที่นี้เราจะเปลี่ยน Default ของ Docker กัน
1. แก้ไขแฟ้ม /etc/docker/daemon.json เพิ่ม
{
    "default-address-pools":
        [
            {"base":"10.10.0.0/16","size":24}
        ]
}
ถ้ามี ค่าอื่นอยู่ให้ใส่ , หลัง ]
{
    "dns": ["172.18.1.2", "172.18.1.3"],
    "default-address-pools":
        [
            {"base":"10.10.0.0/16","size":24}
        ]
}

2. ตรวจสอบว่า Docker มีการสร้าง Network อะไรบ้าง
#sudo docker network ls

3.ลบ network ที่วงกลมสีแดงตามข้อ 2
   3.1 ต้องหยุดการทำงานของ container ที่เรียกใช้ก่อน
         #sudo docker network inspect taneeoaspsuacth_default

         #sudo docker stop tanee_mysql tanee_web
   3.2 ยกเลิกการเชื่อมต่อ container กับ network
         #sudo docker network disconnect taneeoaspsuacth_default tanee_web
         #sudo docker network disconnect taneeoaspsuacth_default tanee_web
   3.3 ลบ network
         #sudo docker network rm taneeoaspsuacth_default

4. สร้าง network ใหม่
#sudo docker network create --driver bridge taneeoaspsuacth_default <= ชื่อไม่จำเป็นต้องเหมือนเดิม

5. เชื่อม network และ container
#sudo docker network connect taneeoaspsuacth_default tanee_web
#sudo docker network connect taneeoaspsuacth_default tanee_web

6. เริ่มการทำงานของ container 
#sudo docker start tanee_mysql tanee_web

7. ตรวจสอบ netwrok
#sudo docker network inspect taneeoaspsuacth_default

จะพบว่า ip ของ container  ได้เปลี่ยนไปแล้ว

8. ลบ Bridge Network เดิม
#ifconfig

#sudo ip link set br-0f333b026e6f down
#sudo ip link set br-b698ee3e22e0 down
#sudo brctl delbr br-0f333b026e6f
#sudo brctl delbr br-b698ee3e22e0

Tags

Rating

Average: 5 (2 votes)