Docker parte 1: Iniciando en docker
Problemáticas de desarrollo de software:
Construir → Distribuir → Ejecutar
Problemas al construir:
- Dependencias de desarrollo
- Versiones de entornos de ejecución
- Equivalencia de entornos de desarrollo y producción
Problemas al distribuir:
- Generaciones del build diferentes
- Acceso a servidores de producción
Problemas al ejecutar:
- Dependencias de aplicación
- Compatibilidad de sistema operativo
- Disponibilidad de servicios externos
- Recursos de hardware
Docker resuelve estas problemáticas, construyendo, distribuyendo y ejecutando en diferentes plataformas.
Diferencias entre containarization y virtualization
Containarization: Estandar para llevar algo dentro. Agrupadores de procesos.
Versátiles:
- En orden de los MB.
- Tienen todas las dependencias que necesitan para funcionar.
- Funcionan igual en todos lados.
Eficientes:
- Comparten archivos simultáneos con otros contenedores.
- Solo se ejecutan procesos, no un SO completo.
Aislados:
- Lo que pasa en el contenedor queda en el contenedor.
- No pueden alterar su entorno de ejecución (a menos que sea explícito).
Virtualization: Imagen o archivo que contiene información dentro. Por lo general son pesadas, de administración costosa y lentas.
Pesadas:
- En el orden de los GB.
- Muchas VMs en el mismo host suelen repetir contenido.
- Administración costosa, ya que una VM debe ser administrada como cualquier otro computador.
Lentas:
- Correr nuestro código en una VM implica no solo arrancar aplicaciones sino también esperar el boot de la VM en si.
Instalación (para Mac)
- Ir a docker.com > Products > Docker Desktop
- Descargar dmg. Se instalará y en barra superior aparecerá el ícono .
- En preferencias, podemos escoger hardware máximo, si se iniciará apenas inicie la mac, uso de disco, entre otros.
- En caso de emergencia, en preferencias existe un “reset” que iniciará todo desde cero.
- Para ver que esté instalado correctamente, se recomienda ejecutar “docker -v” y se espera ver la versión.
- Se recomienda crear cuenta en hub.docker.com, y posteriormente loguearse con esta cuenta en Docker Desktop con ayuda del cliente con “docker login”
- Dato extra: docker está escrito en Go (https://golang.org/)


0 comentarios