Tidak dapat membangun buruh pelabuhan karena kesalahan Tidak dapat menjalankan auplink sebelum melepas

Ketika saya menjalankan docker build saya mendapatkan ini:

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

Ini isi Dockerfile saya:

FROM debian:jessie

RUN apt-get update

Apa masalahnya? Itu tidak masuk akal bagiku.

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*

Menginstal dari 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_rilis -a

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

buruh pelabuhan --version

Docker version 17.06.0-ce, build 02c1d87

buruh pelabuhan --version

Docker version 17.06.0-ce, build 02c1d87

docker-containerd --version

containerd version 0.2.3 commit: cfb82a876ecc11b5ca0977d1733adbe58599088a

docker-containerd-ctr --version

ctr version 0.2.3 commit: cfb82a876ecc11b5ca0977d1733adbe58599088a

buruh pelabuhan-init --version

tini version 0.13.0 - git.949e6fa

buruh pelabuhan-runc --version

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

person jnbdz    schedule 07.08.2017    source sumber


Jawaban (2)


Apakah ini berjalan di Ubuntu non-Intel/ARM 64-bit? Misalnya CPU Raspberry Pi atau ARM64? Kesalahan ini:

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

Ini menyiratkan bahwa (a) instalasi biner pada mesin Anda rusak dalam beberapa hal, atau (b) Anda mencoba menjalankan biner untuk arsitektur berbeda pada sistem Anda.

Bisakah Anda memposting keluaran uname -a dan file /usr/bin/docker-runc? Itu mungkin membantu mempersempit sumber masalah Anda.

person Phil E    schedule 07.08.2017
comment
nama samaran -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
Tidak ada keluaran untuk docker-runc - person jnbdz; 09.08.2017
comment
Saya memperbarui pertanyaan saya. Untuk beberapa alasan docker-runc kosong. Lagi pula, sekarang sudah tidak kosong lagi. - person jnbdz; 10.08.2017
comment
Sungguh meresahkan karena Anda tidak memiliki file dengan panjang nol di sistem file Anda; adakah kemungkinan Anda kehabisan ruang disk? Membuat saya bertanya-tanya apakah lapisan gambar debian:jessie juga terpengaruh, sehingga menyebabkan kesalahan format exec (misalnya konten biner hilang/rusak). Bisakah Anda mencoba gambar lain dan menarik serta menjalankannya terlebih dahulu untuk memverifikasi? Misalnya. docker pull alpine:latest dan docker run -ti --rm alpine:latest sh? - person Phil E; 10.08.2017
comment
Aneh karena saya masih memiliki banyak ruang disk: /dev/sda1 19G 4.7G 15G 25% / Saya akan mencoba apa yang Anda usulkan. - person jnbdz; 10.08.2017
comment
apakah ada kemungkinan Anda kehabisan ruang disk? Tidak tahu. Apakah ada file log yang bisa saya periksa? - person jnbdz; 10.08.2017
comment
Saat ini ketika saya memulai dockerd & saya mendapat beberapa peringatan: 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. Pokoknya yang lain serupa. Saya tidak tahu apakah itu membantu. - person jnbdz; 10.08.2017
comment
Mungkin ini terkait: serverfault.com/questions/867996/ - person jnbdz; 10.08.2017
comment
Saya juga menjalankan Host di VM VirtualBox/Vagrant. - person jnbdz; 10.08.2017
comment
Mengingat Anda memiliki beberapa masalah aneh tentang file dengan panjang nol di instalasi Docker Anda, dan tampaknya ada sisa sisa di /var/lib/docker; dengan asumsi ini adalah VM pengujian tanpa pekerjaan kritis apa pun, apakah Anda bersedia menghentikan daemon, rm -fR /var/lib/docker dan kemudian memulai daemon lagi? Mengingat tarikan baru dari suatu gambar berfungsi dan berjalan, saya tidak melihat ada masalah dengan mesin itu sendiri atau docker-runc lagi. - 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 mendapat peringatan baru ini. Mungkin itu normal. - person jnbdz; 11.08.2017
comment
Tampaknya berfungsi ketika saya menjalankan docker run hello-world. Namun saya masih mendapatkan peringatan ini: WARN[0001] Your kernel does not support cgroup rt period dan WARN[0001] Your kernel does not support cgroup rt runtime. - person jnbdz; 11.08.2017
comment
Detail lainnya: Saya mencoba menginstalnya dengan apt-get. Jadi mungkin berbeda dari setup biner sebelumnya. Coba saya lihat besok. Ngomong-ngomong, terima kasih atas bantuannya. - person jnbdz; 11.08.2017

Sepertinya ada hubungannya dengan aufs FS, OS apa yang Anda gunakan? dan Apakah Anda baru saja memperbarui mesin Anda?

Pembaruan:

Untuk CONFIG_MEMCG_SWAP_ENABLED: missing, CONFIG_RT_GROUP_SCHED: missing and warning: /proc/config.gz does not exist, searching other paths for kernel config ...

Ini adalah konfigurasi dan flag kernel yang hilang, Pastikan Anda menginstal linux-image-extra-$(uname -r) linux-image-extra-virtual, Pertama pastikan Anda menghentikan docker daemon sudo systemctl stop docker dan instal paket-paket ini (berisi driver tambahan yang mendukung container dan aufs, periksa dokumen docker https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu) :

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

Dan perbarui grub Anda GRUB_CMDLINE_LINUX_DEFAULT tambahkan inicgroup_enable=memory swapaccount=1 ke /etc/default/grubfile konfigurasi Anda lalu perbarui grub Anda sudo update-grub periksa https://github.com/moby/moby/issues/4250 && https://github.com/moby/moby/pull/4251

Untuk masalah aufs ada solusi lain untuk buruh pelabuhan modern karena buruh pelabuhan dipindahkan dari aufs ke overlay dan overlay2 adalah dengan mengkonfigurasi mesin Anda dan menerapkan overlay tetapi pastikan Anda membuat cadangan gambar dan kontainer buruh pelabuhan Anda karena perbaikan ini mungkin membuat Anda kehilangannya, periksa Tidak dapat memulai Layanan Docker di Ubuntu 16.04

person misraX    schedule 07.08.2017
comment
Saya lupa menambahkan maaf. Saya baru saja menambahkannya. Kamu benar. Saya menginstal cgroup-lite dan aufs-tools. Tapi saya masih mendapatkan beberapa kesalahan lainnya. - person jnbdz; 07.08.2017
comment
Saya juga mencoba menjalankan skrip ini: raw.githubusercontent.com/ moby/moby/master/contrib/ untuk membantu melacak apa permasalahannya. Saya mengerti: CONFIG_MEMCG_SWAP_ENABLED: missing, CONFIG_RT_GROUP_SCHED: missing dan 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) dan CONFIG_RT_GROUP_SCHED: missing - person jnbdz; 09.08.2017
comment
Saya tidak yakin apakah saya perlu menambahkan linux-image-extra (askubuntu.com/questions/153023/). Saya mencobanya tetapi tidak ada hasil. - person jnbdz; 09.08.2017
comment
Ya itu tidak perlu tetapi seperti yang saya sebutkan itu berisi driver tambahan, Lagi pula, versi buruh pelabuhan mana yang Anda miliki? dan Apakah Anda menginstalnya dari manajer paket atau secara manual? - person misraX; 09.08.2017
comment
Dari manajer paket atau secara manual? dan apa output dari file $(which docker-runc) - person misraX; 09.08.2017
comment
Saya menginstal dari docs.docker.com/engine/installation/linux /docker-ce/binari - person jnbdz; 09.08.2017
comment
Saya baru menyadari bahwa docker-runc kosong... Sangat aneh. saya akan mendownload ulang... - person jnbdz; 10.08.2017
comment
Ini berisiko untuk menginstal dari sumber dan tidak diperlukan khususnya ketika Anda memiliki paket yang didistribusikan ke manajer paket Anda yang secara dinamis akan menghubungkan biner, mengelola versi dan dependensi. Apakah Anda memasang cgroupfs Anda, atau Apakah Anda apt-get install aufs-tools cgroupfs-mount libltdl7 ini adalah dependensi untuk instalasi resmi docker-ce. - person misraX; 10.08.2017
comment
Bukan dari sumbernya tapi dari binernya. Itu sudah dikompilasi. Saya menginstal cgroup-lite bukan cgroupfs-mount dan bukan libltdl7. Saya telah menginstal aufs-tools. - person jnbdz; 10.08.2017
comment
Baiklah, pastikan Anda memilikinya. memasang cgroups penting untuk buruh pelabuhan. - person misraX; 10.08.2017
comment
Hanya cgroupfs-mount yang tidak diinstal. - person jnbdz; 10.08.2017
comment
Saya dapat memulai beberapa kontainer saya. Tapi saya mendapatkan (saya tidak tahu apakah ini ada hubungannya) 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
Ini mungkin berhubungan dengan: Your kernel does not support cgroup rt period, Your kernel does not support cgroup rt runtime - person jnbdz; 10.08.2017