ไม่สามารถเรียกใช้ docker hello-world: จุดเมานต์สำหรับอุปกรณ์ที่ไม่พบ


12

ใหม่สำหรับนักเทียบท่า

mint 17ติดตั้งนักเทียบท่าจากเครื่องมือการจัดการซอฟต์แวร์

เมื่อฉันวิ่ง docker run hello-worldฉันได้รับ:

FATA[0000] Error response from daemon: Cannot start container a6bcc1ede2c38cb6b020cf5ab35ebd51b64535af57fa44f5966c37bdf89c8781: [8] System error: mountpoint for devices not found 

เมื่อฉันดูบันทึกการบริการ ( /var/log/upstart/docker.log) ฉันเห็น:

ERRO[0617] Couldn't run auplink before unmount: exec: "auplink": executable file not found in $PATH 
ERRO[0617] Couldn't run auplink before unmount: exec: "auplink": executable file not found in $PATH 

: รุ่นนักเทียบท่า

Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.2.1
Git commit (client): 7c8fca2
OS/Arch (client): linux/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.2.1
Git commit (server): 7c8fca2
OS/Arch (server): linux/amd64

: ข้อมูลนักเทียบท่า

Containers: 2
Images: 1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 5
 Dirperm1 Supported: false
Execution Driver: native-0.2
Kernel Version: 3.13.0-24-generic
Operating System: Ubuntu 14.04.3 LTS
CPUs: 8
Total Memory: 15.6 GiB
Name: DWDEV-HOME-HBABAI
ID: K4GX:DTV6:547V:U3BO:YEOA:WVNU:NZEZ:L3GG:4W7U:IXNS:X3QK:5PVR
WARNING: No memory limit support
WARNING: No swap limit support

ปรับปรุง:

ติดตั้งsudo apt-get install aufs-toolsเซอร์วิสนักเทียบท่าที่รีสตาร์ทแล้ว ฉันไม่เห็นข้อผิดพลาดต่อไปนี้:

ERRO[0617] Couldn't run auplink before unmount: exec: "auplink": executable file not found in $PATH 

อย่างไรก็ตามในบันทึกที่ฉันเห็นว่าเมื่อนักเทียบท่าเริ่มต้นมันเตือนฉันเกี่ยวกับจุดเชื่อมต่อหน่วยความจำ:

INFO[0000] -job init_networkdriver() = OK (0)           
/var/run/docker.sock is up
WARN[0000] mountpoint for memory not found              
INFO[0000] Loading containers: start.         

ฉันรู้สึกว่ามันเกี่ยวข้องกับ cgroup ... แต่ฉันไม่รู้เกี่ยวกับเทคโนโลยีนั้น (ยัง) ...


ดูเหมือนว่าคำถามของคุณจะตกลงบนพื้นและแตกออกเป็นชิ้น ๆ กรุณารวบรวมมันเข้าด้วยกันเพื่อเรา
สกอตต์

@Scott - ขอโทษ ... หวังว่ามันจะดีขึ้นแล้วตอนนี้ ... ขอบคุณที่ชี้ให้เห็น
hba

คำตอบ:


23

cgroup-liteมันกลับกลายเป็นว่าผมจำเป็นต้องมีการติดตั้ง มันเป็นการยิงในที่มืด แต่ฉันทำตามคำตอบนี้


คุณรู้ไหมฉันมีบางจุดพบว่าตัวฉันเองแล้วลืมมันไป ตอนนี้พบคำถามของคุณเมื่อฉันพบมันอีกครั้งและจดจำ (และ upvoted)
0xC0000022L

ในDebianแพคเกจที่เกี่ยวข้องเรียกว่าcgroupfs-mount
Bass

1

ฉันจะเพิ่มคำตอบอื่นที่นี่สำหรับผู้ที่เห็นสิ่งนี้ในปี 2020 ใน Debian เนื่องจากการแก้ไขปัญหาของฉันไม่พบในการค้นหาที่พบเมื่อ googling สตริงข้อผิดพลาด "จุดเมานท์สำหรับอุปกรณ์ที่ไม่พบ"

พื้นหลัง:

  • Debian 8.11 ทำงานบนแพลตฟอร์ม Google Cloud
  • มีนักเทียบท่าที่ใช้งานได้ติดตั้ง 5 สัปดาห์ก่อนโดยมีตู้สินค้าสองตู้กำลังทำงานอยู่

ทันใดนั้นก็พบว่ามีบางสิ่งที่ทำให้ตู้คอนเทนเนอร์ผิดพลาด สาเหตุที่เป็นไปได้เพียงอย่างเดียวจากระยะไกลที่ฉันสามารถทำได้คือฉันได้ลบโฟลเดอร์พาเรนต์ในโฮสต์ที่มีการแม็พโฟลเดอร์ย่อยเป็นโวลุ่ม เหตุผลอีกประการหนึ่งคือการติดตั้งอุปกรณ์ทางกายภาพเพิ่มเติม

ผลลัพธ์สุดท้ายไม่ว่าในกรณีใดก็ตามคือการพยายามเริ่มคอนเทนเนอร์ของนักเทียบท่าใด ๆ ส่งผลให้เกิดข้อความแสดงข้อผิดพลาดที่เห็นในคำถาม (" mountpoint for devices not found") และไม่มีการรีบูต (และการอัพเกรดเคอร์เนล)

ขั้นตอนที่ฉันทำเพื่อแก้ไขปัญหาคือ

  1. journalctl -xn | lessตรวจสอบบันทึก: ไม่ได้มีข้อมูลเพิ่มเติมมากเกินไป
  2. หยุด Docker daemon ( /etc/init.d/docker stop)
  3. เพิ่มไฟล์/etc/docker/daemon.jsonที่มีเนื้อหา แต่เพียงผู้เดียว{"debug": true}
  4. ลองรีสตาร์ท Docker daemon เท่านั้นเพื่อดูว่ามันล้มเหลว
  5. ตรวจสอบบันทึกซึ่งตอนนี้จะเต็มไปด้วยข้อมูลเพิ่มเติม

cgroupข้อผิดพลาดที่เกี่ยวข้องเหล่านี้เป็นข้อผิดพลาดที่นำไปสู่คำตอบ:

Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.964631675Z" level=warning msg="Your kernel does not support cgroup memory limit"
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.964654637Z" level=warning msg="Unable to find cpu cgroup in mounts"
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.964667575Z" level=warning msg="Unable to find blkio cgroup in mounts"
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.964680057Z" level=warning msg="Unable to find cpuset cgroup in mounts"
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.964750643Z" level=warning msg="mountpoint for pids not found"
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.980250151Z" level=debug msg="Cleaning up old mountid : start."
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: Error starting daemon: Devices cgroup isn't mounted

ตกลงมีบางอย่างเกี่ยวกับcgroupsและติดตั้ง สิ่งนี้ทำให้ฉันมีวิธีแก้ปัญหาสำหรับกลุ่ม cg ที่แตกต่างกันซึ่งสามารถนำไปใช้ในกรณีนี้ซึ่งคำสั่งเดียวที่ดูเหมือนจะมีผลกระทบคือ

  1. /etc/init.d/docker stop
  2. cgroupfs-mount
  3. /etc/init.d/docker start

ตอนนี้เมื่อเริ่ม Docker อีกครั้งบันทึกยังคงมีข้อผิดพลาดที่เกี่ยวข้องกับ cgroup อยู่สองสามบรรทัด:

Jan 13 20:24:42 dev-diffia-no dockerd[9775]: time="2020-01-13T20:24:42.258571633Z" level=warning msg="Your kernel does not support cgroup memory limit"
Jan 13 20:24:42 dev-diffia-no dockerd[9775]: time="2020-01-13T20:24:42.258591020Z" level=warning msg="Unable to find cpu cgroup in mounts"
Jan 13 20:24:42 dev-diffia-no dockerd[9775]: time="2020-01-13T20:24:42.258937091Z" level=warning msg="mountpoint for pids not found"

แต่ครึ่งหนึ่งของพวกเขา ( blkio, cpuset) หายไปและที่สำคัญกว่านั้นคือบรรทัดถัดไปอ่าน:

Jan 13 20:24:42 dev-diffia-no dockerd[9775]: time="2020-01-13T20:24:42.259420798Z" level=info msg="Loading containers: start."

และในที่สุดก็

Unit docker.socket has finished starting up.

ดังนั้นโดยพื้นฐานแล้วการเล่าสิ่ง cgroup ใหม่แก้ไขปัญหา ไม่ต้องรีบูท

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.