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

Contenedores Docker y Linux en Windows, con o sin máquinas virtuales Hyper-V

Los contenedores son encantadores, en caso de que no lo hayas escuchado. Son una forma agradable y limpia de obtener una implementación confiable y garantizada, sin importar el sistema host.

Si quiero ejecutar mi aplicación ASP.NET Core, solo puedo escribir "docker run -p 5000:80 shanselman/demos" en la línea de comando, ¡y se iniciará! No tengo ninguna preocupación de que no funcione. Funcionará y funcionará bien.

Algunos detractores de los contenedores dicen que, por supuesto, podríamos hacer lo mismo con las máquinas virtuales, pero incluso hoy en día, un VHD (disco duro virtual) es algo ingobernable e incluye una tonelada de gastos generales que un contenedor no tiene. Los contenedores están surgiendo y deberías mirarlos detenidamente para tus implementaciones.

Históricamente, en Windows, sin embargo, los contenedores de Linux se ejecutan dentro de una máquina virtual Hyper-V. Esto puede ser algo bueno o algo malo, dependiendo de cuáles sean tus objetivos. La ejecución de contenedores dentro de una máquina virtual le brinda un aislamiento significativo con algunos gastos generales. Esto es bueno para los servidores, pero menos para mi computadora portátil. Docker para Windows oculta la VM en su mayor parte, pero está ahí. Su contenedor se ejecuta dentro de una máquina virtual Linux que se ejecuta dentro de Hyper-V en Windows propiamente dicho.

Con la última versión de Windows 10 (o 10 Server) y la versión beta de Docker para Windows, hay compatibilidad nativa con Linux Container en Windows. Eso significa que no hay una máquina virtual o Hyper-V involucrados (a menos que lo desee), por lo que los contenedores de Linux se ejecutan en Windows usando el soporte de contenedor integrado de Windows 10.

Por ahora, debe cambiar los "modos" entre Hyper V y los contenedores nativos, y no puede (todavía) ejecutar contenedores de Linux y Windows uno al lado del otro. Se dice en la calle que esto es solo un punto en el tiempo, y que Docker en algún momento admitirá la ejecución de contenedores de Linux y Windows en paralelo. Eso es bastante bueno porque abre todo tipo de escenarios híbridos geniales. Podría ejecutar un contenedor de Windows Server con una aplicación .NET Framework ASP.NET que se comunica con un contenedor de Linux que ejecuta Redis o Postgres. Luego podría ponerlos todos en Kubernetes en Azure, por ejemplo.

Una vez que encendí los contenedores de Linux en Windows dentro de Docker, todo funciona y tiene una parte móvil menos.

Puedo ejecutar busybox o Ubuntu real fácil y rápidamente (aunque Windows 10 ya es compatible con Ubuntu de forma nativa con WSL):

¡Más útil incluso es ejecutar Azure Command Line sin instalación! Simplemente "docker run -it microsoft/azure-cli" y se ejecuta en un contenedor de Linux.

¡Incluso puedo ejecutar nyancat! (¡Gracias Tomás!)

docker ejecuta -it supertest2014/nyan

Especulando:espero con ansias el día en que pueda ejecutar "minikube start --vm-driver="windows" (o algo así) y configurar fácilmente un sistema de desarrollo de Kubernetes localmente usando la compatibilidad con Windows Native Linux Container en lugar de usar Hyper-V Virtual Machines , si así lo decido.

Patrocinador: ¿Por qué perderse el control de versiones de su base de datos? Es más fácil de lo que piensa porque SQL Source Control conecta su base de datos a las mismas herramientas de control de versiones que usa para las aplicaciones. Averiguar como.

Docker
  1. Ejecute contenedores en Linux sin sudo en Podman

  2. ¿Qué es Docker (y los contenedores de Linux?)

  3. Portainer:una interfaz gráfica de usuario fácil de usar para ejecutar y obtener contenedores docker

  4. Ejecute fácilmente el software de Windows en Linux con Bottles

  5. Quickemu:ejecute máquinas virtuales Windows, macOS y Linux

Cómo ejecutar el software de Windows en Linux con botellas

Cómo ejecutar contenedores Docker

Cómo:Introducción a los contenedores de Windows y Docker

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

Exploración de ASP.NET Core con Docker en contenedores de Linux y Windows

Cómo ejecutar aplicaciones GUI de Linux en Windows 10 con WSL y WSLg