viernes, 17 de diciembre de 2021

Construyendo nuestras propias imágenes

Posted by q3it on viernes, diciembre 17, 2021 in
Conceptos fundamentales de Docker
Las imágenes son un componente fundamental de Docker y sin ellas los contenedores no tendrían sentido. Estas imágenes son fundamentalmente plantillas o templates.
Algo que debemos tener en cuenta es que las imágenes no van a cambiar, es decir, una vez este realizada no la podremos cambiar.

Ver imágenes descargadas en el host
docker image ls

Descargar imágenes en el host imágenes descargadas en el host
docker pull <nombre de la imagen>
Ej: docker pull redis
Ej: docker pull ubuntu:18.04 descargando una versión en particular.

Eliminar imágenes descargadas en el host
docker image ls // para obtener el id de la imagen
REPOSITORY     TAG            IMAGE ID                CREATED         SIZE
ubuntu 18.04       lastest      93fd78260bd1         8 days ago         86.2MB

docker rmi -f 93fd78260bd1
-f => forzar
Ej: docker rmi -f 93fd78260bd1

Ahora si vamos a crear nuestras propias imágenes, necesitamos un archivo llamado DockerFile que es la ““receta”” que utiliza Docker para crear imágenes.

Es importante que el DockerFile siempre empiece con un ““FROM”” sino, no va a funcionar.

El flujo para construir en Docker siempre es así:
Dockerfile – **build **–> Imágen – run --> Contenedor

Crear nuestras imágenes
  1. Crear el archivo Dockerfile (receta).
  2. El dockerfile siempre debe empezar con el FROM, le indicamos cual va a ser nuestra imagen base para empezar.
  3. RUN para correr un comando.
  4. Creamos un archivo touch /usr/src/hola-mundo.
  5. Construimos el dockerfile.
  6. docker build -t <imagen>:<tag de la imagen> <path de donde vamos a obtener el contexto build, para este caso .>
-t es el nombre del tag de la imagen
Ej:   FROM ubuntu
        RUN touch /usr/src/hola-mundo
        docker build -t ubuntu:box

Hacer push a un contenedor
docker push <tag contenedor>
Ej: docker push <user>/ubuntu:box

Cambiar el tag de un contenedor
docker tag <tag contenedor> <nuevo tag contenedor>
Ej: docker tag ubuntu:box <user>/ubuntu:box