Herramientas de usuario

Herramientas del sitio


informatica:sistemas_operativos:cursos:docker_a_fondo_introduccion_kubernetes:introduccion_docker

¡Esta es una revisión vieja del documento!


Introducción a Docker

Prerrequisitos e instalación

Para seguir correctamente el curso, el único prerrequisito es disponer de un ordenador con cualquier sistema operativo reciente actualizado y Docker Engine (en Linux) o https://docs.docker.com/desktop/Docker Desktop instalado (en Linux, Windows o MacOS).

Con Docker Engine se obtienen los siguientes componentes:

  • El cliente (el comando docker), que usa la línea de comandos (CLI).
  • El componente servidor, que crea y ejecuta los contenedores.

Docker Desktop permite ejecutar la parte servidora de Docker en Windows o MacOS. Dado que esta parte servidora existe solo en Linux, Docker Desktop recurre a la virtualización para conseguirlo.

Así, cuando instalas Docker Desktop, se instala también una máquina virtual (MV) Linux en tu sistema y esa MV es la que ejecutará la parte servidora de Linux, y por lo tanto los contenedores. Al instalar Docker Desktop también obtenemos el cliente nativo (el comando docker, para Windows o MacOS), configurado de tal modo que automáticamente se conecta a dicha MV sin que nosotros tengamos que hacer nada: tú usas el comando docker desde una línea de comandos Windows o un terminal de MacOS y automáticamente se comunica con la parte servidora ejecutándose en la VM. Esa MV la configura y aprovisiona Docker Desktop automáticamente y no tienes que hacer nada con ella (ni pararla, ni configurarla, ni encenderla, ni nada de nada).

  • En Windows puedes usar Hyper-V o WSL2 siendo ese último el modo recomendado por rendimiento
  • En MacOS usa xhyve

En Linux usa KVM (sí, Docker Desktop en Linux también usa una máquina virtual)

Además, Docker Desktop añade los siguientes componentes:

  • Una pequeña interfaz gráfica de configuración en el caso de Docker Desktop (inexistente en Docker Engine)
  • La integración de herramientas adicionales como Synk o Compose
  • La posibilidad de ejecutar un Kubernetes de desarrollo

Cuando hablemos de contenedores Windows, el contenido afecta solamente a Windows, ya que es el único SO que puede ejecutarlos.

Cuando hablemos de aspectos avanzados (en concreto temas de seguridad y permisos), los contenidos harán referencia básicamente a Linux, ya que es el SO donde se pueden experimentar y ver con más facilidad (al no haber una capa intermedia que ejecute los contenedores). En Windows y Mac, algunos temas referentes a seguridad experimentan ligeras variaciones que dependen exactamente de la configuración del sistema.

Verificación de la instalación de Docker

Para verificar qué Docker está instalado en tu máquina, abre una CLI y teclea:

docker --version

Esto mostrará por consola la versión del motor de Docker

Docker en Windows

El soporte para contenedores en Windows llegó con Windows Server 2016 y Windows 10 Anniversary Edition. Eso significa que un contenedor Windows (un contenedor que tenga binarios de Windows) solo puede ser ejecutado si tienes una versión del sistema operativo igual o posterior a las indicadas. Eso implica que en Linux el escenario de los contenedores está bastante avanzado y en Windows lleva menos tiempo en funcionamiento.

Recuerda que los contenedores NO son un mecanismo de virtualización y que, al final, la aplicación que contiene el contenedor es ejecutada por el SO real, el del host. Por ejemplo, si tengo un sistema Linux, solo podremos ejecutar contenedores de Linux. Esto diferencia a los contenedores de una máquina virtual. Los contenedores debemos verlos como un mecanismo de empaquetar aplicaciones con sus dependencias.

En general, si tienes una versión reciente y actualizada de Windows (que sería lo recomendable), deberías instalar Docker Desktop integrado con el subsistema Linux de Windows (WSL 2), como veremos ahora mismo.

WSL es el subsistema Linux de Windows. Gracias a WSL es posible ejecutar nativamente aplicaciones de Linux, e incluso distribuciones completas, dentro de Windows, y sin necesidad de virtualizar o configurar un arranque dual. Es decir, gracias a WSL puedes tener a la vez Windows y Linux funcionando en tu equipo. La versión inicial de WSL, de 2016, no implementaba el Kernel completo de Linux, pero daba bastante margen para trabajar.

En 2020 Microsoft lanzó la versión 2 de la tecnología. WSL 2 está disponible en cualquier versión de Windows 10 o posterior cuyo número de build sea igual o superior a 18917.

Si tienes una versión de Windows que NO disponga de WSL 2, o no quieres activarla por algún motivo, entonces se va a instalar Hyper-V en tu máquina.

Debemos entender que cuando instalamos Docker Desktop for Windows sin WSL 2, terminamos teniendo dos sistemas Docker independientes:

  • La máquina virtual DockerDesktopVM que contiene imágenes Linux y ejecuta contenedores Linux
  • Nuestro ordenador, que contiene imágenes Windows y ejecuta contenedores Windows

Una vez instalado, para que funcione, tu usuario deberá pertenecer al grupo docker-users, un grupo de seguridad especialmente creado para ejecutar Docker.

Modo Docker Puedo gestionar contenedores Linux desde… Puedo gestionar contenedores Windows desde…
WSL 2 - Contenedores Linux Terminales Windows (PS/cmd) o terminales WSL 2 Terminales Windows
WSL 2 - Contenedores Windows Terminales WSL 2 y Terminales Windows Terminales Windows (PS/cmd)
HyperV- Contenedores Linux Terminales Windows (PS/cmd) No puedo
HyperV- Contenedores Windows No puedo Terminales Windows (PS/cmd)
informatica/sistemas_operativos/cursos/docker_a_fondo_introduccion_kubernetes/introduccion_docker.1707816384.txt.gz · Última modificación: por tempwin