เมื่อ Docker ไม่ให้ใช้ Share Drives บน Windows

Petch Kruapanich
readmoreth
Published in
2 min readJul 12, 2019
เมื่อ Docker ไม่ให้ใช้ Share Drives บน Windows

สำหรับใครที่ใช้งาน Docker บน Windows 10 และต้องการ moute volume เพื่อใช้เก็บข้อมูลข้างนอกตัว Image อาจจะเคยเจอ Error แจ้งขึ้นมาว่ามีการ block ระหว่าง Windows กับ Container อยู่ ตามรูปนี้

Firewall detected error

วันนี้เราจะมาลองดูว่า เราจะแก้ปัญหาดังกล่าวได้ยังไงบ้าง โดยลองทำตามเช็คลิสต์เหล่านี้ได้เลยครับ

ตรวจสอบ port 445

ก่อนที่จะไปทำอะไรที่ ซับซ้อนมากกว่านี้ ลองเริ่มต้นจากการเช็คก่อนว่า เครื่องของเราได้กำหนด Inbound Rules ใน Firewall ให้ Allow port 445 แล้วหรือยัง (ลองเข้าไปที่ Windows Defender Firewall with Advance Security) โดยปกติเวลาเราติดตั้ง docker for windows มันจะมีการ allow inbound rules ว่า docker port ไว้ให้อยู่แล้ว

ตรวจสอบว่ามีการ allow inbound rules ให้ port 445 ใช้งานหรือไม่

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)

ตรวจสอบ DockerNat ใน Hyper-V Manager

จากนั้นทำการ Restart Docker และลองไป สั่ง Apply Shared Drives อีกครั้ง

เปิดใช้งาน Shared Drives

สำหรับใครที่ทำทั้งหมดนี้แล้วยังไม่ได้ ในขั้นตอนการตรวจสอบ DockerNat อยากให้ลองตั้งค่าเป็น Private จากนั้นกด Apply แล้วค่อยตั้งค่าเป็น Internal อีกครั้งดู จากนั้นลอง Restart Docker อีกครั้ง น่าจะเรียบร้อยแล้วครับผม

--

--

Petch Kruapanich
readmoreth

Full time Developer, Part time writer, Vinyl lover