ฉันรู้ว่านี่ไม่ใช่การตอบคำถามในมือโดยตรง แต่สำหรับทุกคนที่มาพร้อมกับคำถามที่ใช้ WSL ที่เรียกใช้ Docker สำหรับ windows และ cmder หรือ conemu
เคล็ดลับคือไม่ใช้ Docker ซึ่งติดตั้งบน windows ที่ / mnt / c / Program Files / Docker / Docker / resources / bin / docker.exe แต่ให้ติดตั้ง ubuntu / linux Docker เป็นสิ่งที่ชี้ให้เห็นว่าคุณไม่สามารถเรียกใช้ Docker ได้จากภายใน WSL แต่คุณสามารถเชื่อมต่อกับ Docker สำหรับ windows ได้จากไคลเอนต์ linux Docker
ติดตั้ง Docker บน Linux
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce
เชื่อมต่อกับ Docker สำหรับ windows บนพอร์ต 2375 ซึ่งจำเป็นต้องเปิดใช้งานจากการตั้งค่าใน docker สำหรับ windows
docker -H localhost:2375 run -it -v /mnt/c/code:/var/app -w "/var/app" centos:7
หรือตั้งค่าตัวแปร docker_host ซึ่งจะช่วยให้คุณไม่ใช้สวิตช์ -H
export DOCKER_HOST=tcp://localhost:2375
ตอนนี้คุณควรจะสามารถเชื่อมต่อแบบโต้ตอบกับเซสชันเทอร์มินัล tty