WSL 2, la segunda iteración del subsistema de Windows para Linux, le permite ejecutar un entorno Linux de forma nativa en Windows, sin la sobrecarga de una máquina virtual (VM). También se integra muy bien con Windows y le brinda acceso a la mayoría de las herramientas, utilidades y aplicaciones de la línea de comandos a las que está acostumbrado en Linux.
Esta guía le muestra cómo permitir que los invitados de WSL 2 ejecuten podman
, skopeo
, o buildah
comandos desde Windows utilizando la distribución de Linux de su elección (disponible en la tienda de Microsoft). Viniendo de un punto de partida del sistema operativo host Fedora Linux, tenía curiosidad sobre cómo habilitar y usar las herramientas con las que estoy más familiarizado desde Windows.
Requisito previo:WSL 2
Para instalar WSL 2, vaya a la página de instalación de WSL.
Use Powershell para asegurarse de que WSL 2 esté habilitado de forma predeterminada:
PS> wsl –set-default-version 2
Para obtener información sobre las diferencias clave entre WSL 1 y WSL 2, consulte la documentación de WSL.
El subsistema de Windows para Linux ha recorrido un largo camino. Microsoft ha trabajado arduamente para que la separación entre el sistema operativo Windows host y el sistema operativo invitado Linux sea prácticamente invisible. Los controladores especiales en los núcleos de cada sistema facilitan la ejecución de comandos entre varios shells y ventanas de comandos y permiten el acceso mutuo al sistema de archivos.
Puede confirmar que está utilizando correctamente el kernel WSL 2 con el siguiente comando y salida en cualquiera de los invitados:
$ uname -a
Linux BLD 5.10.16.3-microsoft.standard-WSL2 #1 SMP Fri Apr 2 22:23:49
UTC 2021 x86_64 x86_64 GNU/Linux
Los invitados de WSL 1 informan que la versión del kernel es 4.14 o similar.
Pequeños toques en sus invitados pueden hacer que la integración sea aún más fluida, incluida la vinculación de varios archivos del directorio de inicio (.aws, .sh, .config, etc.). Hay una pista de cómo se puede lograr esto directamente desde el directorio $HOME:
Instalar una distribución de Linux
Para instalar una distribución de Linux, busque su favorita en Microsoft Store.
Para este artículo, estoy usando Fedora, pero hay otras distribuciones disponibles para probar. Podman funciona bien en todas las distribuciones, por lo que puede usar cualquier distribución con la que esté más familiarizado. Es posible que se requieran algunos ajustes de configuración menores, pero generalmente están documentados por la documentación de distribución y podman. Elegí Fedora porque era la distribución que no requería configuración adicional para hacer funcionar el último podman.
En el primer lanzamiento, se instalan la máquina virtual y las tecnologías relacionadas. Se le pedirá que seleccione una contraseña para el primer usuario (que obtiene acceso sudo).
Instalar podman
Una vez que su distribución de Linux haya sido instalada y configurada con un usuario, puede instalar podman como de costumbre:
$ sudo dnf install podman
Después de unos momentos, podman está instalado y listo para funcionar. Puede comprobar que todo funciona como se esperaba:
$ podman info
host:
arch: amd64
buildahVersion: 1.22.3
cgroupControllers: []
cgroupManager: cgroupfs
cgroupVersion: v1
[...]
version:
APIVersion: 3.3.1
OsArch: linux/amd64
Version: 3.3.1
A partir de ahí, puede crear imágenes y usar podman como lo haría habitualmente.
Gracias a la integración de WSL, podman es incluso accesible y utilizable desde PowerShell o el símbolo del sistema:
Instalando y usando el buildah
y skopeo
comandos es exactamente el mismo proceso.
Prueba de cuadro ocupado
Como prueba simple para ver podman
en el trabajo, puede extraer y ejecutar un contenedor Busybox. BusyBox es un proyecto de código abierto (GPL) que proporciona implementaciones simples de casi 400 comandos comunes, incluidos ls, mv, ln, mkdir, more, ps, gzip, bzip2, tar
y grep
, lo que lo convierte en un entorno mínimo apropiado para contenedores y para pruebas simples como esta.
Primero, busque en el repositorio de imágenes predeterminado un contenedor Busybox. Puede hacer esto en su terminal Linux o en Powershell.
$ podman search busybox
INDEX NAME DESCRIPTION
docker.io docker.io/library/busybox Busybox base image
docker.io docker.io/radial/busyboxplus Full-chain...
docker.io docker.io/yauritux/busybox-curl Busybox with CURL
Ejecute el que desee probar:
$ podman run -it docker.io/library/busybox
/ #
Puede usar el contenedor, ejecutar algunos comandos para verificar que todo funciona como se esperaba, luego dejarlo con salir comando.
Contenedores Linux
- ¿Qué son los contenedores de Linux?
- Una introducción a la terminología de contenedores
- Descargar:Introducción a los contenedores
- Operadores de Kubernetes:automatización de la plataforma de orquestación de contenedores
- eBook:Patrones de Kubernetes para diseñar aplicaciones nativas de la nube
- ¿Qué es Kubernetes?
Empezar
Admito que me sorprendió la facilidad con la que las distribuciones actuales de Linux, podman y el subsistema de Windows trabajaron juntos aquí. Es obvio que se ha realizado un gran trabajo en las herramientas de contenedores de Windows y la integración con Linux. Espero que esta guía ayude a otros a llegar fácilmente a este mismo punto de partida y comenzar a ser productivos.
Hay muchos buenos candidatos para un seguimiento profundo, incluido el trabajo con volúmenes, la exposición de servicios en red entre el invitado y el host, y la exposición de capacidades de Linux en esos contenedores. Con tantas herramientas disponibles, ¡tengo mucha confianza en que la comunidad hará un trabajo rápido para investigarlas!