Custom images con Dockerfile

Crear imágenes con un archivo dockerfile es el método mas común debido a que nos da mas rapidez por que podemos escribir el archivo solo una vez y podríamos crear imágenes tantas veces como creamos necesario, Además configurar variables de entorno, copiar contenido hacia el contenedor, o establecer el comando que se va a ejecutar por default. A continuacion construimos el archivo, debe ir con la "D" capital-case:

/Dockerfile

FROM debian:stretch

RUN apt-get update
RUN apt-get -y git
RUN apt-get install -y vim

nota: -y indica que no queremos confirmar preguntas del prompt, si no ponemos este flag el comando hace time-out y no construirá nada.

Comando docker built

docker built -t <name-container> <docker-context>

<name-container> puede ser git:2.11.0 lo que va después de los dos puntos ":" es el tag del la imagen

<docker-context> es la ruta o path de los archivos que se van a utilizar para la construcción de la imagen, el daemon de docker va a empaquetar todos los archivos y los envía hacia la nueva imagen, si el terminal esta en el directorio donde tenemos los archivos para la construcción de la imagen bastará con poner un punto (.)

docker build -t git:2.11.0 .

como resultado se ve como docker ejecuta paso por paso según se especificó en el archivo Dockerfile

▶ docker build -t git:2.11.0 .
Sending build context to Docker daemon   21.5kB
Step 1/4 : FROM debian:stretch
 ---> 8626492fecd3
Step 2/4 : RUN apt-get update
 ---> Using cache
 ---> 4120c3ceb003
Step 3/4 : RUN apt-get install -y git
 ---> Running in 1cf423012ffc
Reading package lists...
Building dependency tree...
Reading state information...
...
...

una vez finalice consultamos la nueva imagen creada

▶ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
git                 2.11.0              6197a8916c8c        5 minutes ago       249MB

y la podemos usar para crear un contenedor con git y vim ya instalados

docker run --rm -it git:2.11.0 bash

una vez dentro del contenedor podemos usar git o vim como queramos

root@e891328249c2:/# git --version
git version 2.11.0
root@e891328249c2:/# watch vim
bash: watch: command not found

Last updated

Was this helpful?