works machine how container docker linux-kernel version

machine - Docker kernel mínimo versión 3.8.13 o 3.10



how docker works (3)

En el sitio web de Docker, estoy viendo información que está cerca de estar en conflicto.

La página: https://docs.docker.com/installation/oracle/ dice "Docker requiere el uso de Unbreakable Enterprise Kernel Release 3 (3.8.13) o superior en Oracle Linux".

La página: https://docs.docker.com/installation/binaries/ Dice que se requiere 3.10.

Supongo que esas cosas se agregaron a una compilación especial de 3.8.13 que, de lo contrario, requeriría la versión 3.10.

Si alguien pudiera dar alguna aclaración, sería genial.


No tuve éxito con Oracle Unbreakable Linux 7.0, que es idéntico a Red Hat 7.0, me dicen.

El siguiente ejemplo muestra que un contenedor bastante estándar creado a partir de la última versión de Ubuntu no se iniciará después de la creación.

[vagrant@oracle-70-x64 ~]$ docker run -t -i ubuntu /bin/bash Unable to find image ''ubuntu:latest'' locally latest: Pulling from ubuntu e118faab2e16: Pull complete 7e2c5c55ef2c: Pull complete e04c66a223c4: Pull complete fa81ed084842: Already exists ubuntu:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security. Digest: sha256:738edd684282277c07f23277718e43562daf2ee210f7aca9a13fae65f0159ddd Status: Downloaded newer image for ubuntu:latest root@6f47331e6c6a:/# exit exit [vagrant@oracle-70-x64 ~]$ docker ps -all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6f47331e6c6a ubuntu:latest "/bin/bash" 36 seconds ago Exited (0) 7 seconds ago boring_lovelace [vagrant@oracle-70-x64 ~]$ docker start 6f47331e6c6a Error response from daemon: Cannot start container 6f47331e6c6a: [8] System error: Unit docker-6f47331e6c6a85410028b661bebe997192bb15dfa2f6cf1d92328586a5afa2c0.scope already exists. FATA[0000] Error: failed to start one or more containers [vagrant@oracle-70-x64 ~]$

El problema es la versión del kernel. Es viejo

[vagrant@oracle-70-x64 ~]$ uname -a Linux oracle-70-x64.vagrantup.com 3.8.13-35.3.1.el7uek.x86_64 #2 SMP Wed Jun 25 15:27:43 PDT 2014 x86_64 x86_64 x86_64 GNU/Linux

Comparado con, por ejemplo, Ubuntu

$ uname -a Linux kore 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux


Deshazte de UEK y estarás en un kernel más moderno.

Esto es lo que tengo en OEL 7 sin uek: 3.10.0-229.14.1.el7.x86_64


Correcto; en general , kernel 3.10 es la versión de kernel mínima absoluta que admite las características que Docker requiere para ejecutar estable (aunque las versiones más nuevas son preferidas).

Sin embargo, algunas características de back-port de distribución de Linux a núcleos más antiguos para que todavía puedan ejecutar Docker. Red Hat Enterprise Linux 6.5, por ejemplo, puede ejecutar Docker en un Kernel 2.6 (aunque todavía es un kernel de 12 años ...)

Resumir;

  • Ejecute siempre la versión de kernel más actualizada provista por su distribución
  • Reemplazar el kernel proporcionado por su distribución con un núcleo personalizado podría funcionar, pero no es oficialmente compatible.
  • Algunos proveedores (en la nube) reemplazan el núcleo con una versión personalizada; esta ha sido la causa de algunos problemas.
  • Si está construyendo su propio núcleo, use una versión reciente (Docker aprovecha algunas características en versiones recientes)

También hay un script de shell para verificar si su sistema tiene las dependencias requeridas y para verificar qué características están disponibles;

https://github.com/docker/docker/blob/master/contrib/check-config.sh

Actualizar

Comenzando con Docker 1.8.0, Red Hat Enterprise Linux 6 y CentOS 6 (y Kernel 2.6) ya no son plataformas compatibles para ejecutar Docker, y no se lanzan nuevos paquetes para esas distribuciones. Se desaconseja ejecutar Docker en esas plataformas, ya que la última versión lanzada para RHEL 6 / CentOS 6 es Docker 1.7.1. Se recomienda actualizar su sistema a RHEL 7 / CentOS 7, que es soportado activamente.