Docker
Docker es es una plataforma de software libre de virtualización, que permite crear, probar e implementar aplicaciones de forma mucho más rápida.
La idea principal consiste en aislar y estandarizar entornos, evitando así conflictos entre lenguaje y versiones y permitiendo crear código con mayor rapidez.
Docker empaqueta software en unidades llamadas contenedores que incluyen todo lo necesario para que el software se ejecute, incluidas bibliotecas, herramientas y demás. Esto nos proporciona la certeza de que el código se comportará siempre de igual forma.
Docker es, por consiguiente, un sistema operativo para contenedores. Los contenedores son un mecanismo de empaquetado lógico donde las aplicaciones tienen todo lo que necesitan para ejecutarse.
Los contenedores creados con Docker virtualizan el sistema operativo de un servidor, de manera similar a cómo una máquina virtual virtualiza su hardware.
El software Docker se instala en cada servidor en el que queramos ejecutar contenedores y proporciona un conjunto de comandos para manipular estos.
Algunas características clave de Docker y/o en general, del desarrollo de software basado en contenedores:
- Gran ecosistema de herramientas y aplicaciones para utilizar con Docker.
- Aislamiento. Los contenedores encapsulan las aplicaciones, lo que permite reemplazar/actualizar una sin tocar el resto.
- Portabilidad: Desarrolla en equipos locales o entornos de prueba, impleméntalo en la nube o en servidores remotos, y ejecútalo en cualquier parte.
- Ligero. Los contenedores comparten el núcleo del host, lo que los hace mucho más eficientes en términos de recursos del sistema que las máquinas virtuales.
- Escalable. Posibilidad de aumentar y distribuir réplicas de contenedores.
Existen dos modelos de licencia de Docker: Docker Community Edition (CE) software libre y gratuito, y Docker Enterprise Edition (EE) basado en suscripción, con características adicionales.
Docker fue inicialmente diseñado para el uso en Linux, por lo que por su naturaleza sigue siendo más afín a entornos Linux.
Contenedores vs máquinas virtuales
A diferencia de las máquinas virtuales, los contenedores de Docker no instalan un sistema operativo completo, sino que se ejecutan sobre el propio sistema operativo anfitrión, lo que los hace mucho más ligeros.
Cada aplicación en Docker va en su propio contenedor totalmente aislado. En contrapartida, debido al gran tamaño y consumo de recursos de las máquinas virtuales, en estas es habitual tener varias o muchas aplicaciones en la misma máquina.
Docker y Kubernetes
Es un error común pensar que debe elegirse entre Docker y Kubernetes, ya que son tecnologías distintas que funcionan bien de forma combinada para usar aplicaciones en contenedores.
[txt] Docker ofrece un estándar abierto para empaquetar y distribuir aplicaciones en contenedores, sin embargo a medida que las aplicaciones crecen para abarcar varios contenedores implementados en varios servidores, administrarlas se vuelve cada vez más complejo. En este problema es donde Kubernetes entra en juego. Este permite monitorizar hasta millones de contenedores.
El éxito de Docker y Kubernetes
Ambos se han convertido en los estándares de facto de la industria, gracias a su calidad y a su naturaleza libre y gratuita.
Kubernetes
Kubernetes es un software de organización de contenedores de software libre.
Soporta diferentes entornos para la ejecución de contenedores, además de Docker.
Wine
La aplicación capaz de ejecutar aplicaciones nativas Windows sobre GNU/Linux. Lejos, muy lejos de ser perfecto, Wine ha mejorado notablemente con el paso de los años. Como apreciación personal, usar Wine es el último recurso que probaría, solo después de estar seguro de que realmente necesito una aplicación específica que solo está disponible para Windows, y que no existe ninguna aplicación para Linux que pueda acometer la misma función. Aunque el software es algo cambiante, en el momento de escribir estas lineas, para ejecutar correctamente y de una forma cómoda Wine, es preciso instalar los paquetes Wine y Q4Wine, este último un gestor e interfaz gráfica para Wine. Paquetes disponibles desde el gestor de paquetes estándar de muchas distribuciones, al menos en Ubuntu.
Desinstalar una aplicación instalada sobre Wine
En un terminal de comandos, ejecutar los comandos wine uninstaller y wine64 uninstaller para wine 64-bits. Esto abrirá los asistentes de desinstalación de apps instaladas, sobre los que es muy fácil e intuitivo eliminar las aplicaciones. Para eliminar Wine completamente, ejecutar sobre el terminal de comandos: rm -rf ~/.wine
Esto eliminará por completo la carpeta .wine del directorio home. Un breve aunque buen tutorial de la eliminación sobre Wine aquí.