เมื่อ Docker ไม่ให้ใช้ Share Drives บน Windows
สำหรับใครที่ใช้งาน Docker บน Windows 10 และต้องการ moute volume เพื่อใช้เก็บข้อมูลข้างนอกตัว Image อาจจะเคยเจอ Error แจ้งขึ้นมาว่ามีการ block ระหว่าง Windows กับ Container อยู่ ตามรูปนี้
วันนี้เราจะมาลองดูว่า เราจะแก้ปัญหาดังกล่าวได้ยังไงบ้าง โดยลองทำตามเช็คลิสต์เหล่านี้ได้เลยครับ
ตรวจสอบ port 445
ก่อนที่จะไปทำอะไรที่ ซับซ้อนมากกว่านี้ ลองเริ่มต้นจากการเช็คก่อนว่า เครื่องของเราได้กำหนด Inbound Rules ใน Firewall ให้ Allow port 445 แล้วหรือยัง (ลองเข้าไปที่ Windows Defender Firewall with Advance Security) โดยปกติเวลาเราติดตั้ง docker for windows มันจะมีการ allow inbound rules ว่า docker port ไว้ให้อยู่แล้ว
Antivirus มีการ Block port รึเปล่า
จากที่ลองหาข้อมูลมา พบว่ามีหลายคนเจอปัญหาว่า Antivirus บางตัว (เช่น nod32) มันจะ block port 445 ซึ่งถ้าใครมี Antivirus ก็ลองไปเช็คดูนะ ว่ามีการ block port 445 ไว้รึเปล่า
ตรวจสอบ DockerNAT
เนื่องจาก Windows 10 จะมีการติดตั้ง Hyper-V Manager มาให้ด้วย ลองตรวจสอบดูว่า Connection Type ถูกตั้งค่าเป็น Internal Network แล้วหรือยัง (ไปที่ Hyper-V Manager -> Virtual Switch Manager -> DockerNAT)
จากนั้นทำการ Restart Docker และลองไป สั่ง Apply Shared Drives อีกครั้ง
สำหรับใครที่ทำทั้งหมดนี้แล้วยังไม่ได้ ในขั้นตอนการตรวจสอบ DockerNat อยากให้ลองตั้งค่าเป็น Private จากนั้นกด Apply แล้วค่อยตั้งค่าเป็น Internal อีกครั้งดู จากนั้นลอง Restart Docker อีกครั้ง น่าจะเรียบร้อยแล้วครับผม