อาร์กิวเมนต์แรกหลังจาก "run" ที่ไม่ใช่แฟล็กหรือพารามิเตอร์ของแฟล็กจะถูกแยกวิเคราะห์เป็นชื่อรูปภาพ เมื่อการแยกวิเคราะห์ล้มเหลวระบบจะแจ้งให้คุณทราบรูปแบบการอ้างอิงชื่อรูปภาพ (แต่อาจเป็นรหัสรูปภาพรูปภาพที่ตรึงหรือไวยากรณ์อื่น ๆ ) ไม่ถูกต้อง ในคำสั่งของคุณ:
docker run -p 8888:8888 -v `pwd`/../src:/src -v `pwd`/../data:/data -w /src supervisely_anpr --rm -it bash
ชื่ออิมเมจ "superly_anpr" ถูกต้องดังนั้นคุณต้องดูคำสั่งก่อนหน้านี้ ในกรณีนี้ข้อผิดพลาดมักเกิดจากการpwd
ส่งออกพา ธ ที่มีช่องว่างอยู่ ทุกอย่างหลังจากเว้นวรรคไม่ใช่พารามิเตอร์อีกต่อไป-v
และนักเทียบท่าพยายามแยกวิเคราะห์เป็นชื่ออิมเมจ การแก้ไขคือการอ้างอิงพารามิเตอร์โวลุ่มเมื่อคุณไม่สามารถรับประกันได้ว่าไม่มีช่องว่างหรืออักขระพิเศษอื่น ๆ
เมื่อคุณทำเช่นนั้นคุณจะพบกับข้อผิดพลาดถัดไป "ไม่พบปฏิบัติการ" ทุกอย่างหลังชื่ออิมเมจจะถูกแยกวิเคราะห์เป็นคำสั่งเพื่อเรียกใช้ภายในคอนเทนเนอร์ ในกรณีของคุณมันจะพยายามเรียกใช้คำสั่ง--rm -it bash
ซึ่งเกือบจะล้มเหลวอย่างแน่นอนเนื่องจาก--rm
จะไม่มีอยู่เป็นไบนารีภายในภาพของคุณ คุณต้องเรียงลำดับพารามิเตอร์ใหม่เพื่อแก้ไขปัญหา:
docker run --rm -it -p 8888:8888 -v "`pwd`/../src:/src" -v "`pwd`/../data:/data" -w /src supervisely_anpr bash
ฉันมีรายละเอียดเพิ่มเติมเกี่ยวกับข้อผิดพลาดทั้งสองนี้และสาเหตุในสไลด์ของฉันที่นี่: https://sudo-bmitch.github.io/presentations/dc2018/faq-stackoverflow-lightning.html#29
docker run -p 8888:8888 -v "`pwd`/../src":/src -v "`pwd`/../data":/data -w /src --rm -it supervisely_anpr bash