Aquí se explica cómo obtener la mejor experiencia de Docker en Windows.
El Subsistema de Windows para Linux 2 es una herramienta fenomenal en Windows 10 y 11, y se integra perfectamente con Docker. Como desarrolladores, es esencial comprender qué ofrece este software y cómo puede aprovechar al máximo su configuración de Docker-WSL 2.
¿Qué es Docker?
Docker es una plataforma de código abierto que permite a los desarrolladores crear, implementar y ejecutar de manera eficiente sus aplicaciones dentro de un contenedor. Todas las dependencias están agrupadas para que su proyecto pueda implementarse fácilmente en cualquier entorno.
Docker es muy popular entre muchas plataformas de contenedores porque es confiable, funcional y altamente escalable. Se ejecuta en el motor Docker, una herramienta esencial de DevOps que proporciona un entorno limpio y liviano para pruebas e implementación. Docker es similar a una máquina virtual pero virtualiza el sistema operativo en lugar del hardware subyacente.
Para los desarrolladores de software, Docker agiliza el flujo de trabajo mediante la creación de contenedores individuales para diferentes microservicios que incluyen las dependencias, bibliotecas y configuraciones necesarias. Cada contenedor de microservicios está aislado y es escalable individualmente.
Cómo usar Docker en WSL 2
Docker es compatible con todos los principales sistemas operativos, como Windows, macOS y Linux. Si tiene Windows 10 u 11, puede usar Docker a través de Docker Desktop y integrarlo con el subsistema de Windows para Linux 2 para mejorar el rendimiento. Puede descargar Docker Desktop para Windows desde el sitio web oficial de Docker.
El subsistema de Windows para Linux (WSL) es una característica valiosa que permite a los usuarios de Windows ejecutar distribuciones de Linux como Ubuntu y Kali sin configurar una máquina virtual o arranque dual.
Esto también significa que Los usuarios de Windows pueden usar directamente las herramientas de línea de comandos de Linux, aplicaciones y utilidades sin pasos de instalación adicionales. La versión más reciente de WSL, WSL 2, brinda mayor estabilidad y un kernel de Linux dedicado.
Dado que los contenedores Docker son robustos, incluso puede configurarlos para alojar su servidor; Los contenedores docker nginx se usan comúnmente como servidores web. Además, puede usar Docker de varias otras maneras:
- Ejecute distribuciones de Linux fácilmente
- Configure un servidor web para fines de aprendizaje o prueba
- Aplicaciones de implementación portátiles
- Agrupe la aplicación en un solo archivo de imagen
- Canalización de CI/CD simplificada
Debe familiarizarse con las mejores prácticas para utilizar Docker con el Subsistema de Windows para Linux 2, tal como lo haría con cualquier otra plataforma o herramienta. Como desarrollador, puedo decir por experiencia personal que será mucho más productivo y eficiente una vez que integre los siguientes consejos en su flujo de trabajo.
1. Integrar código VS con WSL 2
Visual Studio Code es un IDE popular que es amado debido a sus increíbles características, comunidad y extensiones. Como desarrollador, la capacidad de usar Visual Studio Code para el desarrollo de aplicaciones en una plataforma Windows mientras también ejecutar esas aplicaciones en un kernel de Linux es increíblemente ventajoso y casi increíble característica.
Cuando integra VS Code en el subsistema de Windows para Linux, puede aprovechar su kernel de Linux especializado para mejorar la compatibilidad entre plataformas. Puede optimizar aún más su flujo de trabajo utilizando el terminal integrado dentro de VS Code con WSL 2.
A configurar VS Code con WSL 2 en Windows, puede configurar el WSL extensión de VS Code Marketplace y poner las cosas en marcha.
2. Utilice el sistema de archivos WSL 2
Para ejecutar correctamente sus contenedores Docker, es vital que confíe en el sistema de archivos de su distribución WSL 2 y no dependa en gran medida del sistema de archivos nativo de Windows. A lo largo de mi experiencia trabajando con contenedores Docker en WSL 2, descubrí que es mejor almacenar los archivos de su proyecto dentro de WSL.
3. Utilice secuencias de comandos nativas de Linux
Muchos proyectos en contenedores en los que trabajará probablemente vendrán con scripts para la automatización en Linux. Por lo general, estos scripts se desarrollan primero para Linux y los desarrolladores de Windows no son una prioridad.
Con WSL 2, todo su equipo puede usar los mismos scripts de automatización de Linux y no tiene que preocuparse por mantener scripts de automatización compatibles con Windows para su equipo.
4. Configure BuildKit para mejorar la seguridad y el rendimiento
BuildKit es un conjunto de herramientas de código abierto que mejora el proceso de compilación tradicional de Docker en términos de rendimiento y seguridad; está directamente integrado con Docker, por lo que no necesita instalarlo por separado.
Cuando habilitas el Kit de construcción de manera predeterminada, se asegura de que sus contenedores se construyan con el kit de herramientas BuildKit, lo que le brinda mayor seguridad, concurrencia, flexibilidad y almacenamiento en caché.
Para habilitar BuildKit de forma predeterminada, debe realizar los siguientes cambios en el archivo de configuración ~/.profile:
exportar DOCKER_BUILDKIT=1.
5. Configurar límites de recursos
Cuando integra el backend de WSL 2 con Docker Desktop, otorga a Docker acceso a todos sus recursos de CPU. Hacerlo ayuda a mejorar el rendimiento de los contenedores que consumen muchos recursos.
Sin embargo, en algunos casos, un contenedor puede asignar una gran cantidad de memoria en exceso, lo que hace que los procesos críticos del sistema operativo se bloqueen. Es más probable que experimente esto cuando use contenedores de base de datos o un microservicio de almacenamiento en caché.
Afortunadamente, puede configurar contenedores Docker para limitar la memoria del sistema y el uso de la CPU. Siempre debe tener cuidado al configurar la memoria del sistema, incluso un error menor puede tener consecuencias significativas. Puedes referirte a la documentación oficial de Docker para obtener una guía más detallada sobre cómo limitar la memoria y los recursos de CPU consumidos por un contenedor Docker.
6. Recuperar Memoria Caché
Si está ejecutando un contenedor Docker en WSL 2, su memoria debería liberarse una vez que finalice el contenedor. Desafortunadamente, el kernel del sistema operativo tiende a mantener los datos en el caché; esto significa que la memoria efectiva reclamada por WSL 2 no será suficiente.
Puede recuperar toda la memoria que se utiliza innecesariamente como caché ejecutando el siguiente comando a través de la raíz en WSL 2:
eco 1 > /proc/sys/vm/drop_caches
Sea más inteligente con WSL 2
WSL 2 es la mejor característica para los desarrolladores basados en Windows, ya que cambia por completo la forma en que los desarrolladores usan Docker. Los desarrolladores deben comprender las mejores prácticas para usar Docker con WSL para mejorar el rendimiento, la seguridad y la flexibilidad del flujo de trabajo.