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 ลบ 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