Docker: Ejecutar containers Linux en Windows Server 2022
Hace un tiempo os explicaba qué diferencia en containers en Linux y Windows.
Uno de los problemas de las plataformas, es que no puedes ejecutar containers Linux bajo Windows o Windows bajo Linux. Hay métodos que permiten lanzar contenedores Windows bajo un cluster de containers Linux, como os expliqué en esta entrada, donde hablamos de agregar un host Windows en Kubernetes.
Hoy os voy a enseñar como podéis lanzar containers Linux bajo un sistema Windows Server 2022.
En la anterior entrada, os explicaba como instalar Docker bajo Windows Server 2022, y si no modificáis nada, veréis que al intentar crear, por ejemplo, un container Ubuntu os da un error:
Y si vais a “docker info”, veréis que no existe el driver para trabajar con containers Linux bajo Windows:
Existe una forma experimental, que permite cambiar esto. Lo primero es instalar las características de Hyper-V y Containers:
1 |
Install-WindowsFeature -Name Hyper-V,Containers -IncludeAllSubFeature -IncludeManagementTools |
Generamos una variable en el sistema de la siguiente forma:
1 |
[Environment]::SetEnvironmentVariable(“LCOW_SUPPORTED”, “1”, “Machine”) |
O podéis hacerlo vía gráfica:
Lanzaremos la creación de un fichero daemon.json de la siguiente forma:
1 2 3 4 5 6 7 8 9 10 |
PS C:\Windows\system32> $configfile = @" >> >> { >> >> "experimental": true >> >> } >> >> "@ PS C:\Windows\system32> $configfile|Out-File -FilePath C:\ProgramData\docker\config\daemon.json -Encoding ascii -Force |
Creamos el directorio como administradores:
1 |
C:\Program Files\Linux Containers |
Como administrador también lanzamos:
1 |
Invoke-WebRequest -Uri "https://github.com/linuxkit/lcow/releases/download/v4.14.35-v0.3.9/release.zip" -UseBasicParsing -OutFile release.zip |
Y por último:
1 |
Expand-Archive release.zip -DestinationPath “$Env:ProgramFiles\Linux Containers\.” |
Ahora podemos o reiniciar el servidor o el servicio:
1 |
Restart-Computer |
Ahora revisamos con “docker info” nuevamente si disponemos del driver:
E intentamos lanzar un container Linux Ubuntu bajo Windows Server 2022:
1 2 3 4 5 6 7 8 9 10 |
PS C:\Windows\system32> docker run -it ubuntu Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu 08c01a0ec47e: Pull complete Digest: sha256:669e010b58baf5beb2836b253c1fd5768333f0d1dbcb834f7c07a4dc93f474be Status: Downloaded newer image for ubuntu:latest WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (windows/amd64) and no specific platform was requested root@2e5a50738930:/# cat /etc/debian_version bullseye/sid root@2e5a50738930:/# |
Interesante ¿no? Seguiremos investigando…
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?