Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

207
Vistas
Dispositivo o recurso ocupado - Docker

Al realizar apt-get -y upgrade en una nueva máquina Ubuntu 14.04 con la imagen ubuntu:latest (Xenial), generó un error:

 Setting up makedev (2.3.1-93ubuntu2~ubuntu16.04.1) ... mv: cannot move 'console-' to 'console': Device or resource busy makedev console c 5 1 root tty 0600: failed

Tengo una instalación nueva de docker en un Ubuntu 14.04 nuevo, usando este comando:

 sudo apt-get remove docker docker-engine sudo apt-get update sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual wget -qO- https://get.docker.com/ | sudo sh su - $USER # To logout and login

Docker para hello-world funciona bien:

 $ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 78445dd45222: Pull complete Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://cloud.docker.com/ For more examples and ideas, visit: https://docs.docker.com/engine/userguide/

Cuando creo un contenedor docker vacío con:

 docker run -it ubuntu bash

y ejecutó lo siguiente:

 apt-get update apt-get install -y debconf-utils echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections apt-get update apt-get -y upgrade

El error:

 Setting up makedev (2.3.1-93ubuntu2~ubuntu16.04.1) ... mv: cannot move 'console-' to 'console': Device or resource busy makedev console c 5 1 root tty 0600: failed

se genera al realizar la última apt-get -y upgrade

El registro completo de Docker está en: https://gist.github.com/alvations/ebe7175b984213d6f64a3c779ba3249e

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

De acuerdo con otras respuestas/comentarios en que apt-get -y upgrade no es tan buena idea como sacar una imagen más nueva/actualizada. Cuando se requiere un paquete en particular pero está desactualizado en una imagen, la instalación de ese paquete en particular suele ser suficiente (ya que las dependencias se actualizarán según sea necesario).

Sin embargo , realmente no hay ninguna razón por la que no pueda usar apt-get -y upgrade y, de hecho, lo consideraría un error, similar pero no exactamente igual a:

https://bugs.launchpad.net/ubuntu/+source/makedev/+bug/1675163

La parte que está fallando es la primera llamada a MAKEDEV en el script postinst pero esto se maneja y el script continúa. En última instancia, esto significa que no hay ningún problema actual con la instalación de makedev. Pero esto puede no ser siempre cierto , por lo que probablemente requiera que se genere un error con Ubuntu para que también se detecten los contenedores docker (de alguna manera).

Nota: si le preocupa que makedev arruine su directorio docker /dev/ actualmente o quiere asegurarse de deshacerse de cualquier condición de error al instalar makedev, la solución para el error al que vinculé se puede usar para engañar al script de postinstalación para que no se ejecute . El cheque en el script dice:

 # don't stomp on LXC users if grep -q container=lxc /proc/1/environ then echo "LXC container detected, aborting due to LXC managed /dev." exit 0 fi

por lo tanto, si agregara una variable de entorno cuyo nombre termina en contenedor con el valor lxc, la verificación se activaría y no se instalarían nuevos dispositivos.

 docker run -ti -e "ImNotAnLXCcontainer=lxc" ubuntu

Esto hará que el script se cierre, no cree un montón de entradas /dev/, y genere el mensaje:

 Setting up makedev (2.3.1-93ubuntu2~ubuntu16.04.1) ... LXC container detected, aborting due to LXC managed /dev.
about 4 years ago · Santiago Trujillo Denunciar

0

Los contenedores Docker no son máquinas virtuales completas. Comparten el kernel con el host, por lo que no sorprende que algunas operaciones de bajo nivel, como la creación de dispositivos, fallen. Sin embargo, observo que el comando no falla a pesar del mensaje de error: el comando devuelve 0. Sugeriría que el contenedor realmente funcione como se esperaba.

A pesar de esto, la mejor respuesta es simplemente no ejecutar apt-get upgrade . Está utilizando la imagen ubuntu:latest , que Docker mantiene actualizada con nuevas versiones. Entonces, en lugar de hacer apt-get upgrade para obtener una nueva versión, simplemente haga docker pull ubuntu:latest .

Puede comprobar cuándo se actualizó por última vez la latest imagen aquí https://github.com/docker-library/repo-info/blob/master/repos/ubuntu/remote/latest.md . En el momento de escribir este artículo, la última actualización fue hace más de 6 semanas, por lo que faltarán algunas actualizaciones. Si bien estoy decepcionado de que no esté más actualizado, aún recomendaría no ejecutar la upgrade , ya que es probable que tenga problemas y transfiera la responsabilidad de las actualizaciones a usted mismo. Abra un problema si falta una actualización importante.

Observo que la imagen de debian parece mantenerse más actualizada, probablemente porque se usa como imagen base para muchas de las imágenes oficiales. Recomendaría usar esto si es posible.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda