Taller explicativo sobre construcciones multi-stage de Docker

TALLER: DOCKER MULTI-STAGE Y SUS BENEFICIOS PRACTICOS

MULTI-STAGE

Funcionalidad de Docker que permite definir multiples imagenes intermedias de Docker y varias etapas de construccion en un mismo Dockerfile para construir una imagen final. Se pueden usar multiples instrucciones FROM en el Dockerfile donde cada una de ellas inicia una nueva etapa o paso.

Entre las caracteristicas de las construcciones multi-stage tenemos:

  • Creacion de Dockerfiles mas faciles de leer y mantener
  • Optimizacion de imagenes
  • Incremento de la diversidad de opciones del desarrollador al disponer de varias imagenes base.

Normalmente al construir una imagen de Docker se suele terminar con una imagen grande y pesada ya que se utiliza alguna imagen base generl de Dockerhub o algun repositorio privado para crearlas, y dentro de las mismas hay muchos archivos o paquetes por defecto de las imagenes que no se usan nunca durante la ejecucion del contenedor y solamente ocupan espacio. Una de las razones para evitar imagenes grandes es porque generan potenciales vulnerabilidades de seguridad e incrementan el area de ataque.

Se puede reducir el tamaño de las imagenes de Docker mediante el uso del Build Pattern o Builder (en español) el cual es un patron de diseño que, en el caso de Docker, utiliza normalmente dos imagenes para crear primero una imagen base para la construccion de assets y compilacion de codigo fuente, y una segunda imagen que se utiliza para correr o desplegar la aplicacion final. Al principio este patron era implementado mediante el uso de multiples Dockerfiles pero desde Docker 17.06 CE se puede realizar en un solo Dockerfile por la introduccion y soporte de construcciones multi-stage.

PRESENTACION

Ve la presentacion inicial del taller disponible en el siguiente link de drive

YOUTUBE

El video del taller esta disponible en mi canal de youtube

REFERENCIAS

Similar Resources

Go-http-server-docker - Simple sample server using docker and go

go-http-server-docker Simple sample webserver using docker and go.

Jan 8, 2022

Docker-hub-rate-limit - Show pulling rate status of Docker-hub

Docker-Hub Pull Rate Status This tool shows current status of docker hub pull ra

Jan 28, 2022

Dotnet-appsettings-env - Convert .NET appsettings.json file to Kubernetes, Docker and Docker-Compose environment variables

dotnet-appsettings-env Convert .NET appsettings.json file to Kubernetes, Docker

Dec 30, 2022

Dotnet-appsettings-env - Convert .NET appsettings.json file to Kubernetes, Docker and Docker-Compose environment variables

dotnet-appsettings-env Convert .NET appsettings.json file to Kubernetes, Docker

Feb 16, 2022

Multi cluster kubernetes dashboard with batteries included. Build by developers, for developers.

kubetower Multi cluster kubernetes dashboard with batteries included. Built by developers, for developers. Features Restart deployments with one click

Nov 28, 2022

A multi-service dev environment for teams on Kubernetes

A multi-service dev environment for teams on Kubernetes

Tilt Kubernetes for Prod, Tilt for Dev Modern apps are made of too many services. They're everywhere and in constant communication. Tilt powers multi-

Jan 5, 2023

Kilo is a multi-cloud network overlay built on WireGuard and designed for Kubernetes (k8s + wg = kg)

Kilo Kilo is a multi-cloud network overlay built on WireGuard and designed for Kubernetes. Overview Kilo connects nodes in a cluster by providing an e

Jan 1, 2023

Enterprise-grade container platform tailored for multicloud and multi-cluster management

Enterprise-grade container platform tailored for multicloud and multi-cluster management

KubeSphere Container Platform What is KubeSphere English | 中文 KubeSphere is a distributed operating system providing cloud native stack with Kubernete

Jan 2, 2023

⎈ Multi pod and container log tailing for Kubernetes

stern Stern allows you to tail multiple pods on Kubernetes and multiple containers within the pod. Each result is color coded for quicker debugging. T

Nov 7, 2022
Repositório para a aula sobre integração do containerd com Golang
Repositório para a aula sobre integração do containerd com Golang

Integrando containers nativamente usando Golang Este é o código finalizado da aplicação Já pensou em uma alternativa ao Docker? Que tal manipular cont

May 4, 2021
Open, Multi-Cloud, Multi-Cluster Kubernetes Orchestration
Open, Multi-Cloud, Multi-Cluster Kubernetes Orchestration

Karmada Karmada: Open, Multi-Cloud, Multi-Cluster Kubernetes Orchestration Karmada (Kubernetes Armada) is a Kubernetes management system that enables

Dec 30, 2022
Go WhatsApp Multi-Device Implementation in REST API with Multi-Session/Account Support

Go WhatsApp Multi-Device Implementation in REST API This repository contains example of implementation go.mau.fi/whatsmeow package with Multi-Session/

Dec 3, 2022
Sample multi docker compose environment setup

Instructions This is a demonstration of a Multi Docker Compose. The purpose of this repositoy is ongoing research on "Docker compose" architecture des

Oct 21, 2022
The example shows how to build a simple multi-tier web application using Kubernetes and Docker
The example shows how to build a simple multi-tier web application using Kubernetes and Docker

Guestbook Example This example shows how to build a simple multi-tier web application using Kubernetes and Docker. The application consists of a web f

Nov 15, 2021
Explore Docker registries and manipulate Docker images!
Explore Docker registries and manipulate Docker images!

L/S tags Utility and API to manipulate (analyze, synchronize and aggregate) images across different Docker registries. Example invocation $ lstags alp

Nov 25, 2022
Docker-based remote code runner / 基于 Docker 的远程代码运行器
Docker-based remote code runner / 基于 Docker 的远程代码运行器

Docker-based remote code runner / 基于 Docker 的远程代码运行器

Nov 9, 2022
ecsk is a CLI tool to interactively use frequently used functions of docker command in Amazon ECS. (docker run, exec, cp, logs, stop)
ecsk is a CLI tool to interactively use frequently used functions of docker command in Amazon ECS. (docker run, exec, cp, logs, stop)

English / 日本語 ecsk ECS + Task = ecsk ?? ecsk is a CLI tool to interactively use frequently used functions of docker command in Amazon ECS. (docker run

Dec 13, 2022
Hassle-free minimal CI/CD for git repositories with docker or docker-compose projects.
Hassle-free minimal CI/CD for git repositories with docker or docker-compose projects.

GIT-PIPE Hassle-free minimal CI/CD for git repos for docker-based projects. Features: zero configuration for repos by default automatic encrypted back

Sep 23, 2022
Tool to convert docker-compose files to set of simple docker commands

docker-decompose Tool to convert docker-compose files to set of simple docker commands. Install Use go get to install the latest version of the librar

Apr 12, 2022