Contenedores en Windows Server 2016
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