raspberry para instalar hypriotos hub como raspberry-pi docker raspbian

raspberry-pi - para - instalar docker en raspberry pi 3



Al ejecutar Docker en Raspberry Pi, los contenedores de inicio fallan de vez en cuando (1)

Instalé Docker (0.8.0-1) ejecutando los pasos descritos en el blog Resin.io . Básicamente, todo funciona bien y puedo iniciar el daemon docker y ejecutar el cliente.

Lamentablemente, cuando intento ejecutar un contenedor, a veces falla. Esto no depende del contenedor real, ya que cuando repites el comando funciona. Algunas veces necesita más de dos intentos, a veces también funciona en el primer intento. Mi comando de run básicamente se ve así:

$ docker run -i -t --rm=true resin/rpi-raspbian bash

Entonces, nada lujoso hasta ahora ... el mensaje de error que recibo solo me dice que el contenedor salió con el code 1 , sea lo que sea que esto signifique.

Básicamente, sucede lo mismo cuando intento build un Dockerfile: por lo general, funciona en un solo paso y falla en el siguiente. Como Docker internamente almacena en caché los resultados, puedes construir un Dockerfile ejecutándolo una y otra vez de forma manual, y en cada ejecución puedes dar un paso más. Si falla, otra vez code 1 .

El mensaje de error exacto es:

2014/02/27 18:15:45 Error: inicio: no se puede iniciar el contenedor 99fc6a3327fb4af25e6c7a07d992009dde8a5425de89f44aae76ce4740e09492: estado de salida 1

Lo que me sorprende es que cuando ejecuto una docker ps -a luego, los contenedores no se eliminan (al menos, los que no se pudieron crear siguen allí) y, lo que es aún más sorprendente, este comando enumera el código de estado como -1 .

No veo nada en los registros, cuando corro

$ docker logs 99fc

¿Alguna idea de lo que podría causar estos problemas?

ACTUALIZAR

Lamentablemente, no hay una carpeta /var/log/messages ni una carpeta /var/log/syslog en el sistema, pero si ejecuto dmesg las últimas líneas son:

[56954.479079] device veth4FI4FH entered promiscuous mode [56955.270388] docker0: port 1(veth4FI4FH) entered forwarding state [56955.270493] docker0: port 1(veth4FI4FH) entered forwarding state [56955.480603] docker0: port 1(veth4FI4FH) entered disabled state [56955.484685] device veth4FI4FH left promiscuous mode [56955.484726] docker0: port 1(veth4FI4FH) entered disabled state

ACTUALIZACIÓN 2

Ahora descubrí que obtengo registros extendidos llamando a journalctl (ya que estoy en un sistema basado en sistema). Lo que obtengo es:

Feb 28 09:31:02 white docker[123]: 2014/02/28 09:31:02 POST /v1.9/containers/create Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job create() Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] -job create() = OK (0) Feb 28 09:31:02 white docker[123]: 2014/02/28 09:31:02 POST /v1.9/containers/8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916/attach?stderr=1&stdin=1&stdout=1&stream=1 Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job inspect(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916, container) Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] -job inspect(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916, container) = OK (0) Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job attach(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) Feb 28 09:31:02 white docker[123]: 2014/02/28 09:31:02 POST /v1.9/containers/8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916/start Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job start(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job allocate_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] -job allocate_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = OK (0) Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job allocate_port(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] -job allocate_port(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = OK (0) Feb 28 09:31:03 white docker[123]: [error] container.go:1244 Error running container: exit status 1 Feb 28 09:31:03 white docker[123]: [/docker|5cd5747f] +job release_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) Feb 28 09:31:03 white kernel: device vethHXP55Y entered promiscuous mode Feb 28 09:31:03 white avahi-daemon[131]: Withdrawing workstation service for vethUTI4YT. Feb 28 09:31:03 white docker[123]: [/docker|5cd5747f] -job release_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = OK (0) Feb 28 09:31:03 white docker[123]: [/docker|5cd5747f] -job attach(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = OK (0) Feb 28 09:31:04 white docker[123]: [/docker|5cd5747f] +job release_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) Feb 28 09:31:04 white docker[123]: 2014/02/28 09:31:04 Unable to unmap port 0.0.0.0:80: port is not mapped Feb 28 09:31:04 white docker[123]: [/docker|5cd5747f] -job release_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = OK (0) Feb 28 09:31:04 white docker[123]: [error] container.go:1299 8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916: Error closing Pty master: invalid argument Feb 28 09:31:04 white kernel: docker0: port 1(vethHXP55Y) entered forwarding state Feb 28 09:31:04 white kernel: docker0: port 1(vethHXP55Y) entered forwarding state Feb 28 09:31:04 white docker[123]: Cannot start container 8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916: exit status 1[/docker|5cd5747f] -job start(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = ERR (1) Feb 28 09:31:04 white docker[123]: [error] api.go:959 Error: start: Cannot start container 8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916: exit status 1 Feb 28 09:31:04 white docker[123]: [error] api.go:91 HTTP Error: statusCode=500 start: Cannot start container 8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916: exit status 1 Feb 28 09:31:04 white kernel: docker0: port 1(vethHXP55Y) entered disabled state Feb 28 09:31:04 white avahi-daemon[131]: Withdrawing workstation service for vethHXP55Y. Feb 28 09:31:04 white kernel: device vethHXP55Y left promiscuous mode Feb 28 09:31:04 white kernel: docker0: port 1(vethHXP55Y) entered disabled state

Aparentemente, el problema está en container.go:1244 al intentar iniciar el contenedor.

¿Esto es de alguna ayuda?


A medida que utilizaste nuestro puerto de cargadores de resina, supongo que estás ejecutando Arch Linux. En Arch, el último paquete lxc es lxc-1.0 y Docker ha tenido problemas con esta versión de lxc [1].

La degradación de lxc a 0.9 o 0.8 debería solucionar el problema. Arch guarda un caché de paquetes descargados recientemente en /var/cache/pacman/pkg . Entonces, como root, haga pacman -U /var/cache/pacman/pkg/lxc-<VERSION> y luego reinicie su daemon docker.

Si no encuentra un paquete en caché, encontrará más formas de hacerlo aquí [2].

[1] https://github.com/dotcloud/docker/issues/4298

[2] https://wiki.archlinux.org/index.php/Downgrading_Packages