ไม่สามารถสร้างนักเทียบท่าได้เนื่องจากไม่สามารถเรียกใช้ auplink ก่อนที่จะยกเลิกการต่อเชื่อมข้อผิดพลาด

เมื่อฉันรัน docker build ฉันได้รับสิ่งนี้:

Sending build context to Docker daemon  10.24kB
WARN[11935] Couldn't run auplink before unmount /var/lib/docker/aufs/mnt/21647778a50f097d4535246ec5206960dd909f4bb8b0e3d04fdd53a7402fc2de-init: exec: "auplink": executable file not found in $PATH 
Step 1/2 : FROM debian:jessie
 ---> 86baf4e8cde9
Step 2/2 : RUN apt-get update
WARN[11935] Couldn't run auplink before unmount /var/lib/docker/aufs/mnt/21647778a50f097d4535246ec5206960dd909f4bb8b0e3d04fdd53a7402fc2de: exec: "auplink": executable file not found in $PATH 
 ---> Running in 1fef9bef5bf7
ERRO[11934] containerd: start container                   error="shim error: fork/exec /usr/bin/docker-runc: exec format error" id=1fef9bef5bf77141a97669d2aa785e74f9027a849919a937f714e93fbae3916d
ERRO[11935] Create container failed with error: shim error: fork/exec /usr/bin/docker-runc: exec format error 
ERRO[11934] containerd: deleting container                error="fork/exec /usr/bin/docker-runc: exec format error: \"\""
WARN[11935] Couldn't run auplink before unmount /var/lib/docker/aufs/mnt/21647778a50f097d4535246ec5206960dd909f4bb8b0e3d04fdd53a7402fc2de: exec: "auplink": executable file not found in $PATH 
shim error: fork/exec /usr/bin/docker-runc: exec format error

นี่คือเนื้อหาของ Dockerfile ของฉัน:

FROM debian:jessie

RUN apt-get update

ประเด็นคืออะไร? มันไม่สมเหตุสมผลสำหรับฉัน

ll /usr/bin | grep docker
-rwxr-xr-x  1 root   root    18471276 Aug  3 22:08 docker*
-rwxr-xr-x  1 root   root     9938352 Aug  3 22:08 docker-containerd*
-rwxr-xr-x  1 root   root     8941944 Aug  3 22:08 docker-containerd-ctr*
-rwxr-xr-x  1 root   root     3824920 Aug  3 22:08 docker-containerd-shim*
-rwxr-xr-x  1 root   root    40328816 Aug  3 22:08 dockerd*
-rwxr-xr-x  1 root   root           0 Aug  3 22:08 docker-init*
-rwxr-xr-x  1 root   root           0 Aug  3 22:08 docker-proxy*
-rwxr-xr-x  1 root   root           0 Aug  3 22:08 docker-runc*
-rwxr-xr-x  1 root   root     8962864 Aug  3 21:40 docker-volume-local-persist*

การติดตั้งจาก https://docs.docker.com/engine/installation/linux/docker-ce/binaries/

file $(which docker-runc):

/usr/bin/docker-runc: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=e3d80e183baf26a9d48c3f0435931d42aa1bf340, not stripped

lsb_release -ก

Distributor ID: Ubuntu
Description:    Ubuntu 17.04
Release:    17.04
Codename:   zesty

นักเทียบท่า --version

Docker version 17.06.0-ce, build 02c1d87

นักเทียบท่า --version

Docker version 17.06.0-ce, build 02c1d87

นักเทียบท่าคอนเทนเนอร์ --version

containerd version 0.2.3 commit: cfb82a876ecc11b5ca0977d1733adbe58599088a

นักเทียบท่า-containerd-ctr --version

ctr version 0.2.3 commit: cfb82a876ecc11b5ca0977d1733adbe58599088a

นักเทียบท่า-init --version

tini version 0.13.0 - git.949e6fa

นักเทียบท่า-runc --version

runc version 1.0.0-rc3
commit: 2d41c047c83e09a6d61d464906feb2a2f3c52aa4
spec: 1.0.0-rc5

person jnbdz    schedule 07.08.2017    source แหล่งที่มา


คำตอบ (2)


สิ่งนี้ทำงานบน Ubuntu ที่ไม่ใช่ Intel/ARM 64 บิตหรือไม่ เช่น Raspberry Pi หรือ ARM64 CPU? ข้อผิดพลาดนี้:

shim error: fork/exec /usr/bin/docker-runc: exec format error

อาจบอกเป็นนัยว่า (a) การติดตั้งไบนารี่บนเครื่องของคุณเสียหายในทางใดทางหนึ่งหรือ (b) คุณกำลังพยายามเรียกใช้ไบนารีสำหรับสถาปัตยกรรมอื่นในระบบของคุณ

คุณสามารถโพสต์ผลลัพธ์ของ uname -a และ file /usr/bin/docker-runc ได้หรือไม่ นั่นอาจช่วยจำกัดสาเหตุของปัญหาให้แคบลง

person Phil E    schedule 07.08.2017
comment
อูเนม -a Linux badger 4.10.0-30-generic #34-Ubuntu SMP Mon Jul 31 19:38:17 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux - person jnbdz; 09.08.2017
comment
ไม่มีเอาต์พุตสำหรับ docker-runc - person jnbdz; 09.08.2017
comment
ฉันอัปเดตคำถามของฉันแล้ว ด้วยเหตุผลบางอย่าง docker-runc ว่างเปล่า ยังไงก็ตามตอนนี้ก็ไม่ว่างเปล่าอีกต่อไป - person jnbdz; 10.08.2017
comment
เป็นเรื่องน่าสับสนที่คุณมีไฟล์ที่มีความยาวเป็นศูนย์ในระบบไฟล์ของคุณ มีโอกาสใดที่คุณมีสภาพพื้นที่ดิสก์ไม่เพียงพอ? ทำให้ฉันสงสัยว่าเลเยอร์ของอิมเมจ debian:jessie ได้รับผลกระทบด้วยหรือไม่ ทำให้คุณมีข้อผิดพลาดด้านรูปแบบ exec (เช่น เนื้อหาไบนารีหายไป/เสียหาย) คุณสามารถลองใช้อิมเมจอื่นแล้วดึงและเรียกใช้ก่อนเพื่อตรวจสอบได้หรือไม่ เช่น. docker pull alpine:latest และ docker run -ti --rm alpine:latest sh? - person Phil E; 10.08.2017
comment
มันแปลกเพราะฉันยังมีพื้นที่ดิสก์อีกมาก: /dev/sda1 19G 4.7G 15G 25% / ฉันจะลองใช้สิ่งที่คุณเสนอ - person jnbdz; 10.08.2017
comment
มีโอกาสใดที่คุณมีสภาพพื้นที่ดิสก์ไม่เพียงพอ ไม่ทราบ มีไฟล์บันทึกที่ฉันสามารถตรวจสอบได้หรือไม่? - person jnbdz; 10.08.2017
comment
ตอนนี้เมื่อฉันเริ่ม dockerd & ฉันได้รับคำเตือนหลายครั้ง: WARN[0000] Your kernel does not support cgroup rt period, WARN[0000] Your kernel does not support cgroup rt runtime, WARN[0000] libcontainerd: client is out of sync, restore was called on a fully synced container, WARN[0000] libcontainerd: failed to retrieve container, WARN[0000] failed to cleanup ipc mounts:, failed to umount /var/lib/docker/containers/28c274e176c9c112f8bc73f6916860665c63f1407ca2670944deee7b6ae2e747/shm: invalid argument ยังไงๆ ตัวอื่นๆ ก็คล้ายๆ กัน ฉันไม่รู้ว่ามันช่วยได้ไหม - person jnbdz; 10.08.2017
comment
บางทีนี่อาจเกี่ยวข้อง: serverfault.com/questions/867996/ - person jnbdz; 10.08.2017
comment
นอกจากนี้ ฉันกำลังใช้งานโฮสต์บน VM VirtualBox/Vagrant - person jnbdz; 10.08.2017
comment
เนื่องจากคุณมีปัญหาแปลก ๆ เกี่ยวกับไฟล์ที่มีความยาวเป็นศูนย์ในการติดตั้ง Docker ของคุณและดูเหมือนว่าจะมีเศษที่เหลือใน /var/lib/docker; สมมติว่านี่คือ VM ทดสอบโดยไม่มีการทำงานที่สำคัญใดๆ คุณจะเปิดให้หยุด daemon rm -fR /var/lib/docker แล้วเริ่ม daemon อีกครั้งหรือไม่ เมื่อพิจารณาถึงการทำงานของรูปภาพและการทำงานใหม่ ฉันไม่เห็นปัญหาใดๆ กับตัวเครื่องยนต์หรือ docker-runc อีกต่อไป - person Phil E; 11.08.2017
comment
WARN[0001] failed to rename /var/lib/docker/tmp for background deletion: rename /var/lib/docker/tmp /var/lib/docker/tmp-old: no such file or directory. Deleting synchronously ได้รับคำเตือนใหม่นี้ บางทีมันอาจจะเป็นเรื่องปกติ - person jnbdz; 11.08.2017
comment
ดูเหมือนว่าจะใช้งานได้เมื่อฉันเรียกใช้ docker run hello-world แต่ฉันยังคงได้รับคำเตือนเหล่านี้: WARN[0001] Your kernel does not support cgroup rt period และ WARN[0001] Your kernel does not support cgroup rt runtime - person jnbdz; 11.08.2017
comment
รายละเอียดอื่น: ฉันลองติดตั้งด้วย apt-get ดังนั้นมันอาจจะแตกต่างไปจากการตั้งค่าไบนารี่ครั้งก่อน ให้ฉันดูพรุ่งนี้ โดยวิธีการขอบคุณสำหรับความช่วยเหลือ - person jnbdz; 11.08.2017

ดูเหมือนว่ามีบางอย่างเกี่ยวข้องกับ aufs FS คุณใช้ระบบปฏิบัติการอะไร และคุณเพิ่งอัพเดตเครื่องของคุณเมื่อเร็ว ๆ นี้หรือไม่?

อัปเดต:

สำหรับ CONFIG_MEMCG_SWAP_ENABLED: missing, CONFIG_RT_GROUP_SCHED: missing and warning: /proc/config.gz does not exist, searching other paths for kernel config ...

สิ่งเหล่านี้ไม่มีการกำหนดค่าเคอร์เนลและแฟล็ก โปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง linux-image-extra-$(uname -r) linux-image-extra-virtual ขั้นแรกตรวจสอบให้แน่ใจว่าคุณหยุด docker daemon sudo systemctl stop docker และติดตั้งแพ็คเกจเหล่านี้ (มีไดรเวอร์เพิ่มเติมที่รองรับคอนเทนเนอร์และ aufs ตรวจสอบเอกสารนักเทียบท่า https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu) : :

sudo apt-get install \ linux-image-extra-$(uname -r) \ linux-image-extra-virtual

และอัปเดตด้วงของคุณ GRUB_CMDLINE_LINUX_DEFAULT เพิ่มสิ่งเหล่านี้cgroup_enable=memory swapaccount=1 ไปยังไฟล์ /etc/default/grubconfiguration ของคุณ จากนั้นอัปเดตด้วงของคุณ sudo update-grub ตรวจสอบ https://github.com/moby/moby/issues/4250 && https://github.com/moby/moby/pull/4251

สำหรับปัญหา aufs มีวิธีแก้ปัญหาอื่นสำหรับนักเทียบท่าสมัยใหม่ เนื่องจากนักเทียบท่าย้ายจาก aufs เป็น overlay และ overlay2 คือการกำหนดค่าเครื่องของคุณและใช้ overlay แต่ตรวจสอบให้แน่ใจว่าคุณได้สำรองอิมเมจนักเทียบท่าและคอนเทนเนอร์ของคุณ เนื่องจากการแก้ไขนี้อาจทำให้คุณสูญเสียมันไป ตรวจสอบ ไม่สามารถเริ่มบริการ Docker ใน Ubuntu 16.04

person misraX    schedule 07.08.2017
comment
ลืมเติม ขออภัยครับ. ฉันเพิ่งเพิ่มมัน คุณพูดถูก ฉันติดตั้ง cgroup-lite และ aufs-tools แล้ว แต่ฉันยังคงได้รับข้อผิดพลาดอื่นๆ อยู่บ้าง - person jnbdz; 07.08.2017
comment
ฉันได้ลองเรียกใช้สคริปต์นี้แล้ว: raw.githubusercontent.com/ moby/moby/master/contrib/ เพื่อช่วยติดตามว่าปัญหาคืออะไร ฉันได้รับสิ่งนี้: CONFIG_MEMCG_SWAP_ENABLED: missing, CONFIG_RT_GROUP_SCHED: missing และ warning: /proc/config.gz does not exist, searching other paths for kernel config ... - person jnbdz; 07.08.2017
comment
CONFIG_MEMCG_SWAP_ENABLED: missing -- (cgroup swap accounting is currently enabled) และ CONFIG_RT_GROUP_SCHED: missing - person jnbdz; 09.08.2017
comment
ฉันไม่แน่ใจว่าฉันต้องเพิ่ม linux-image-extra (askubuntu.com/questions/153023/) ฉันพยายามแล้วก็ไม่เกิดผล - person jnbdz; 09.08.2017
comment
ใช่ มันไม่จำเป็น แต่อย่างที่บอกไปแล้วว่ามันมีไดรเวอร์เพิ่มเติม คุณมี Docker เวอร์ชันไหนอยู่บ้าง? และคุณติดตั้งจากตัวจัดการแพ็คเกจหรือด้วยตนเอง? - person misraX; 09.08.2017
comment
จากผู้จัดการแพ็คเกจหรือด้วยตนเอง ? และผลลัพธ์ของ file $(which docker-runc) คืออะไร - person misraX; 09.08.2017
comment
ฉันกำลังติดตั้งจาก docs.docker.com/engine/installation/linux /นักเทียบท่า-ce/ไบนารี - person jnbdz; 09.08.2017
comment
ฉันเพิ่งสังเกตเห็นว่า docker-runc ว่างเปล่า... แปลกมาก ฉันจะดาวน์โหลดมันอีกครั้ง... - person jnbdz; 10.08.2017
comment
การติดตั้งจากแหล่งที่มามีความเสี่ยงและไม่จำเป็นเป็นพิเศษเมื่อคุณแจกจ่ายแพ็คเกจให้กับตัวจัดการแพ็คเกจของคุณซึ่งจะเชื่อมโยงไบนารี จัดการเวอร์ชัน และการขึ้นต่อกันแบบไดนามิก คุณเมานต์ cgroupfs ของคุณหรือคุณ apt-get install aufs-tools cgroupfs-mount libltdl7 สิ่งเหล่านี้เป็นสิ่งอ้างอิงสำหรับการติดตั้ง docker-ce อย่างเป็นทางการ - person misraX; 10.08.2017
comment
ไม่ใช่จากแหล่งที่มา แต่มาจากไบนารี มันถูกรวบรวมไว้แล้ว ฉันติดตั้ง cgroup-lite ไม่ใช่ cgroupfs-mount และไม่ใช่ libltdl7 ฉันติดตั้ง aufs-tools แล้ว - person jnbdz; 10.08.2017
comment
เอาล่ะ กรุณาตรวจสอบให้แน่ใจว่าคุณมีพวกมันแล้ว การติดตั้ง cgroups เป็นสิ่งสำคัญสำหรับนักเทียบท่า - person misraX; 10.08.2017
comment
ไม่ได้ติดตั้งเฉพาะ cgroupfs-mount - person jnbdz; 10.08.2017
comment
ฉันสามารถเริ่มคอนเทนเนอร์บางส่วนได้ แต่ฉันได้รับ (ฉันไม่รู้ว่าสิ่งนี้เกี่ยวข้องหรือไม่) failed to cleanup ipc mounts:, failed to umount /var/lib/docker/containers/b8335587ad37a36a35fc2f1eb57b3b3d91f61af75262eb075b9045664885ee30/shm: invalid argument, libcontainerd: client is out of sync, restore was called on a fully synced container (28c274e176c9c112f8bc73f6916860665c63f1407ca2670944deee7b6ae2e747)., libcontainerd: failed to retrieve container 28c274e176c9c112f8bc73f6916860665c63f1407ca2670944deee7b6ae2e747 state: rpc error: code = 2 desc = containerd: container not found - person jnbdz; 10.08.2017
comment
อาจเกี่ยวข้องกับ: Your kernel does not support cgroup rt period, Your kernel does not support cgroup rt runtime - person jnbdz; 10.08.2017