Tipos de contenedores

Los contenedores están divididos en 2 tipos:

–        Contenedores de Windows Server

Que ofrecen aislamiento de aplicaciones mediante procesos y espacios de nombres.

–        Contenedores de Hyper-V

Amplían lo que ofrecen los contenedores de Windows Server mediante la ejecución en una máquina virtual optimizada.

 “ Hay muchas similitudes entre un contenedor y una máquina virtual ya que ambos ejecutan un sistema operativo, tienen un sistema de archivos y se puede acceder a ellos  a través de la red”

Sin embargo, la tecnología y conceptos relacionados con los contenedores son muy diferentes con los de las máquinas virtuales.

Como podemos ver los contenedores son una herramienta muy potente que nos permitirá de manera rápida y flexible el poder aislar una serie de aplicaciones en nuestros sistemas.

 

Conceptos básicos

Conocer una serie de conceptos básicos nos ayudara mucho para poder empezar a trabajar con contenedores  y entender el funcionamiento básico de los mismos. Estos son los principales conceptos:

–        Host de Contenedor: Equipo Físico o Virtual donde se encuentra el contenedor.

–        Imagen de Sistema de Contenedor: Los contenedores están implementados a partir de imágenes. Esta es la imagen donde se encuentra el Entorno del Sistema Operativo.

–        Imagen del Contenedor: Esta imagen incluye el Sistema Operativo, la Aplicación y todas las dependencias el Contenedor.

–        Registro de Contenedor: Las imágenes se almacenan en este registro y se pueden descargar del mismo a petición.

–        DockerFile: Son usados para automatizar la creación de imágenes de Contenedor.

 

Requisitos de sistema operativo

–        La característica de contenedor de Windows solo está disponible en Windows Server 2016 (Core y con experiencia de escritorio), Nano Server y Windows 10 Professional y Enterprise.

–        El rol de Hyper-V debe instalarse antes de ejecutar los contenedores de Hyper-V.

–        Los hosts de contenedor de Windows Server deben tener Windows instalado en c:.. Esta restricción no se aplica si solo se implementarán los contenedores de Hyper-V.

Con esta imagen podemos ver resumida de una manera general lo que es un contenedor:

Ejemplo instalación de Docker

Desde PowerShell realizamos la descarga de los ficheros necesarios, así como el registro del servicio de Docker.

Invoke-WebRequest "https://download.docker.com/components/engine/windows-server/cs-1.12/docker.zip" -OutFile "$env:TEMP\docker.zip" -UseBasicParsing

Descomprimir el fichero a la carpeta c:\Program Files\Docker:

expand-archive -path "$env:TEMP\docker.zip" -DestinationPath $env:ProgramFiles

Añadir el directorio de Docker al path del sistema de forma persistente:

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Docker", [EnvironmentVariableTarget]::Machine)

Si sólo lo queremos añadir momentáneamente, eso quiere decir que cuando se reinicia el equipo se pierde:

$env:path += ";c:\program files\docker"

Añadir el servicio de Docker al sistema:

dockerd.exe --register-service

Iniciar el servicio de Docker:

start-service Docker

Ya se puede comprobar que Docker está operativo y funciona correctamente en nuestro sistema con el comando:

docker version

Ofrece una información parecida a esta:

PS C:\> docker versión Client:  Version:      1.12.2-cs2-ws-beta-rc1  API version:  1.25  Go version:   go1.7.1 Git commit:   62d9ff9  Built:        Fri Sep 23 20:50:29 2016  OS/Arch:      windows/amd64 Server:  Version:      1.12.2-cs2-ws-beta-rc1  API version:  1.25  Go version:   go1.7.1  Git commit:   62d9ff9  Built:        Fri Sep 23 20:50:29 2016  OS/Arch:      windows/amd64

Como parar e iniciar un Contenedor

Parar el Contenedor:

Abriendo una consola de PowerShell y ejecutar el comando:

docker ps

Se visualizan los contenedores en ejecución. Para parar uno en concreto, introducir el comando siguiente indicando el Contenedor ID que se obtiene de la lista anterior:

docker stop CONTAINER_ID

 

Iniciar el Contenedor:

Esta es fácil sabiendo el Contenedor ID:

docker ps -a

Iniciar indicando el Contenedor ID:

docker start Container_ID

 

Si queremos ampliar información, os recomiendo que veáis este video en el cual realizan una introducción bastante buena de lo que es un Contenedor y  lo que podemos hacer con ellos:

 

Espero os hayáis hecho una idea general de lo que son los Contenedores, y que os haya sido útil este post.

 

Autor/a: Miguel Angel Porras Rodríguez

Curso: Microsoft MCSE Private Cloud

Centro: Tajamar

Año académico: 2016-2017