GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo configurar Docker dentro del sistema Windows para Linux (WSL2) en Windows 10

He escrito sobre WSL2 y sus gloriosas maravillas muchas veces. A medida que su lanzamiento (presuntamente) se acerca, al momento de escribir esto está en Windows Insiders Slow and Fast, quería actualizar algunas publicaciones. Escribí en un blog sobre algunas cosas geniales sobre WSL y Docker

  • Docker Desktop para WSL 2 integra Windows 10 y Linux aún más cerca
  • Depuración remota de una aplicación .NET Core Linux en WSL2 desde Visual Studio en Windows
  • Sugerencias y trucos geniales de WSL (subsistema de Windows para Linux) que usted (o yo) no sabía que eran posibles
  • Ruby on Rails en Windows no solo es posible, es fabuloso usar WSL2 y VS Code
  • ¡Transfiera fácilmente distribuciones de WSL entre máquinas con Windows 10 con importación y exportación!
  • ¿Cuál es la diferencia entre una consola, una terminal y un shell?

Aquí hay un pequeño HanselFAQ y algunos recursos.

Quiero ejecutar Linux en Windows

Ciertamente puede usar HyperV o VirtualBox y ejecutar una máquina virtual estándar. Descargue un ISO, móntelo y ejecute "un cuadrado dentro de un cuadrado". No se integrará a la perfección en Windows, será como la película Inception, pero está probado en el tiempo.

Mejor aún, instale WSL o WSL2. Tomará de 5 a 10 minutos como máximo si su Windows 10 está algo actualizado.

  • Cómo instalar WSL en Windows 10
    • WSL no incluye un kernel de Linux. Su acceso al sistema de archivos de Linux es un poco lento, pero accede a los archivos de Windows muy rápido. Si usa Cygwin, le encantará esto, porque es realmente Linux, solo se emula el kernel.
  • Cómo instalar WSL2 en Windows 10
    • WSL2 incluye un kernel de Linux real y su sistema de archivos de Linux es entre 5 y 10 veces más rápido que WSL. WSL2 usa una pequeña VM de utilidad que expande los contratos de su memoria y puede administrar las distribuciones con la línea de comandos de wsl.
    • Haga todo su trabajo de desarrollo aquí, mientras sigue usando VS Code en Windows. Es asombroso. Mírame configurar un amigo con WSL2, EN VIVO en YouTube.

Quiero usar SSH en cosas de Linux desde Windows

Hay 15 años de sitios web que le dicen que instale Putty, pero es posible que no lo necesite. OpenSSH se ha estado distribuyendo en Windows 10 durante más de dos años. Puede agregarlos con las características de Windows o, si lo desea, tomar una versión y ponerla en su RUTA.

También puede hacer cosas como configurar claves para usar OpenSSH integrado de Windows 10 para SSH automáticamente en una máquina Linux remota. También me gusta configurar Signed Git Commits con YubiKey NEO y GPG y Keybase en Windows.

Necesito una terminal mejor en Windows

La nueva Terminal de Windows es para ti. Descarga Windows Terminal ahora gratis. Es de código abierto. A continuación, puede ejecutar Win64/Win32 ssh desde arriba o ejecutar cualquier distribución de Linux SSH. Que te diviertas. Es hora.

NOTA:¿Ya descargó la Terminal, tal vez hace un tiempo? Ha cambiado lo suficiente como para eliminar el archivo profiles.json y empezar de nuevo.

Puede descargar la Terminal de Windows desde Microsoft Store o desde la página de lanzamientos de GitHub. También hay un lanzamiento no oficial de Chocolatey. Recomiendo la versión Store si es posible.

Mi aviso y las fuentes son feas

Hazlos bonitos. Te mereces lo mejor. Obtenga CascadiaPL.ttf y PowerLine de Cascadia Code y abróchese el cinturón. Obtén un buen tema y tal vez un fondo GIF.

Quiero usar Docker en Windows y quiero que no apeste

Sorpresa, es realmente increíble. Es posible que haya tenido algunos desafíos con Docker hace algunos años en Windows y se dio por vencido, pero regrese. Ha habido una enorme (y fascinante) arquitectura de Docker en Windows. Está muy bien integrado si tienes WSL2.

Si tiene WSL2 bien configurado, obtenga Docker Desktop WSL2. ¡Esta versión de Docker para Windows usa WSL2 como motor, lo que le permite compartir su contexto de Docker en Windows y Linux en la misma máquina! ¡Como pretendía el fabricante!

WSL 2 introduce un cambio significativo en la arquitectura, ya que es un kernel de Linux completo creado por Microsoft, lo que permite que los contenedores de Linux se ejecuten de forma nativa sin emulación. Con Docker Desktop ejecutándose en WSL 2, los usuarios pueden aprovechar los espacios de trabajo de Linux y evitar tener que mantener scripts de compilación de Linux y Windows.

Entonces eso significa

  1. Instala Windows 10 Insider Preview compilación 19018 o superior
  2. Habilite la función WSL 2 en Windows. Para obtener instrucciones detalladas, consulte la documentación de Microsoft.
  3. Descargue Docker Desktop Edge 2.1.6.0 o una versión posterior.

Asegúrese de que sus instancias de WSL predeterminadas sean WSL2. Puedes hacerlo con wsl -l -v y luego wsl --set-version  <distro> 2

Luego, dentro de Docker Desktop para Windows, debe verificar dos cosas. En primer lugar, ¿está utilizando WSL2 como backend?

Y luego, la configuración que a menudo se pierde, verifique en Recursos | Integración de WSL y dígale a Docker qué distribuciones de WSL2 desea usar para acceder a Docker. Si está prestando atención, puede notar que Docker Desktop intenta enviarle una notificación en el Centro de actividades, pero es posible que se la pierda.

NOTA:Si usó una vista previa técnica anterior, es posible que tenga un contexto adicional de Docker ahora vestigial llamado "wsl". Desea usar el predeterminado, no el WSL.

Esto no es intuitivo ni obvio y es posible que obtenga errores extraños como estos

docker wsl open //./pipe/docker_wsl: The system cannot find the file specified.

o

error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_wsl/v1.40/images/json?all=1: open //./pipe/docker_wsl: The system cannot find the file specified.

Puede ver si tiene un contexto adicional de antes, como a continuación. Ese "wsl" es más antiguo (si lo tiene) y desea utilizar el valor predeterminado tanto en Windows como en WSL2.

docker context ls
NAME DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT
default * Current DOCKER_HOST based configuration npipe:////./pipe/docker_engine https://kubernetes.docker
wsl Docker daemon hosted in WSL 2 npipe:////./pipe/docker_wsl

De hecho, eliminé ese para evitar confusiones con docker context rm wsl .

Aquí está Ubuntu en mi máquina con Windows

Y aquí está mi máquina con Windows. Tenga en cuenta que las imágenes acoplables en ambas instancias devuelven la misma lista. ¡Son el mismo backend de Docker!

Quiero codificar en VS Code en Windows pero compilar en Linux

En este punto, una vez que he configurado las cosas, puedo volverme loco. Puedo hacer desarrollo basado en contenedores, donde uso VS Code para ejecutar todas mis herramientas de desarrollador y crear un contenedor desde adentro... tal vez nunca instale Go o PHP o .NET Core. Todo está dentro de un contenedor.

Oh, por cierto, ¡Suscríbete a mi YouTube! Hablo mucho sobre estas cosas allí.

Patrocinador: Couchbase brinda a los desarrolladores el poder de SQL con la flexibilidad de JSON. Comience a usarlo hoy de forma gratuita con tecnologías que incluyen Kubernetes, Java, .NET, JavaScript, Go y Python.


Docker
  1. Cómo usar systemd-nspawn para la recuperación del sistema Linux

  2. Explicación del subsistema de Windows para Linux, WSL y WSL2

  3. Cómo instalar Docker en AlmaLinux / Rocky Linux

  4. Cómo configurar OpenCL para GPU en Linux y Docker [Guía completa]

  5. Cómo configurar el título de una ventana en Linux

Cómo instalar el subsistema de Windows para Linux

Cómo configurar compilaciones automáticas para imágenes de Docker en GitHub

Cómo configurar un contenedor Apache Docker

Docker Desktop para WSL 2 integra Windows 10 y Linux aún más cerca

Los 15 mejores emuladores de Linux para sistemas Windows

Cómo configurar $PATH en el sistema Linux de forma permanente