Docker: Dockerfile intro

in #programacion6 years ago (edited)


Imagen tomada de runnable


Dockerfile

Se define como un documento de texto que contiene todos los comandos que un usuario puede llamar en CLI para generar una imagen. Utilizando el comando docker build los usuarios pueden construir automáticamente varias instrucciones que se ejecuten sucesivamente en la linea de comandos.

Para definir un pequeño ejemplo:

FROM busybox
RUN echo "Hola"

Tal cual dije es un pequeño ejemplo, aqui suceden algunas cosas veamos:

  • Primero Docker analiza si ya se cuenta con la imagen elegida (busybox)
    • si no cuenta con la imagen se conecta con el server y la descarga
    • De contar con esta imagen ya de manera local entonces solo se procede a seleccionarla y usarla.
  • El segundo comando RUN solo ejecuta el mensaje de Hola en consola

Como ejecutar dockerfile: #docker build -t nombre:version .     (el punto del final es 100% necesari0)

Ahora veamos algo un poco mas avanzado y aparte con el uso de uno de los mejores lenguajes de programación Golang

FROM scratch  
ADD . /app/  
WORKDIR /app  
EXPOSE 8080 
CMD ["./main"] 

Veamos lo que pasa en el ejemplo anterio:

  • En la primera linea se manda llamar un comando FROM scratch recordemos que aqui es donde se manda llamar la imagen del servidor de Docker pero estamos haciendo uso de la imagen mas pequeña que existe en docker llamada scratch.
  • El segundo comando lo que hace es una copia de todo el directorio actual a una carpeta llamada app dentro de la imagen
  • WORKDIR define que es la carpeta sobre la cual la imagen va a iniciar, es decir, cuando se genere un contenedor de esta imagen estan en la carpeta app.
  • EXPOSE se utiliza para "exponer", es decir,  permitir la comunicacion del contenedor creado sea mediante el puerto 8080, ya que este ejemplo contiene una pagina web.
  • CMD este comando funciona muy parecido a como lo hace el comando RUN la diferencia entre ellos es que CMD solo puede suceder una vez y si existe mas de una solo se tomara en cuenta la ultima en el archivo Dockerfile. Entonces este comando se encarga de ejecutar un programa (como lo es en este caso).

Como ejecutar dockerfile: #docker build -p 8080:8080 -t nombre:version .

*Como extra les dejo como crear ejecutable de programa hecho en Golang para que no requieras que este instalado Go en el SO:  CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main . 

Espero les ayude in poco a iniciar en el mundo de Docker, son libres de dejar que les gustaría saber o si les gustaría saber mas sobre alguno de los puntos vistos. Les dejo el enlace de mi post anterior por si quien leer un poco mas de las bases de Docker.

Aquí puedes encontrar documentación oficial de Docker para CLI.

Les agradeceré sus votos y comentarios, Saludos. 

Now go and code around! 

Sort:  

Buen post. Da gusto ver iniciativas como la tuya, de publicar contenido en español de tecnologías tan demandadas por el mercado actual.

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 62648.12
ETH 2562.87
USDT 1.00
SBD 2.74