Knowledge Base

¿Qué es esto?

Docker: Automatizar la creación de imágenes

01/03/2016 - 17/12/2018 -  Comentarios - Docker

Se hace mediante docker files.

Los docker files son scripts propios del docker engine. Aquí un ejemplo explicado:

FROM progrium/busybox ==> Se indica el nombre de la imagen que se va a utilizar como base

MAINTAINER Name surname <author@mail.com> ==> Autor

RUN opkg-install wget bash git libstdcpp && \ ==> Conjunto de instrucciones que hay que ejecutar para automatizar la creación de la nueva imagen. Como hay varias instrucciones se separan con ampersands y como están en diferentes líneas, se separan con una contrabarra. Se puede hacer ejecutando varios comandos RUN en lugar de concatenarlo así, pero en ese caso, para cada uno de los comandos RUN creará un nuevo layer

    wget https://nodejs.org/dist/v4.1.0/node-v4.1.0-linux-x64.tar.gz --no-check-certificate && \

    gunzip -d node-v4.1.0-linux-x64.tar.gz && \ 

    tar -xf node-v4.1.0-linux-x64.tar && \ 

    rm -f /lib/libpthread.so.0 && \

    ln -s /lib/libpthread-2.18.so /lib/libpthread.so.0 && \ 

    rm node-v4.1.0-linux-x64.tar && \ 

    mv /node-v4.1.0-linux-x64 node

ENV PATH=$PATH:/node/bin ==> Añadiría esa variable de entorno

Por tanto, los pasos serían:

  • En el host, crearíamos el fichero Dockerfile
  • Pegaríamos el contenido del fichero:

FROM progrium/busybox

MAINTAINER Name surname <author@mail.com>

RUN opkg-install wget bash git libstdcpp && \

    wget https://nodejs.org/dist/v4.1.0/node-v4.1.0-linux-x64.tar.gz --no-check-certificate && \

    gunzip -d node-v4.1.0-linux-x64.tar.gz && \

    tar -xf node-v4.1.0-linux-x64.tar && \

    rm -f /lib/libpthread.so.0 && \

    ln -s /lib/libpthread-2.18.so /lib/libpthread.so.0 && \

    rm node-v4.1.0-linux-x64.tar && \

    mv /node-v4.1.0-linux-x64 node

ENV PATH=$PATH:/node/bin

  • Guardamos el fichero
  • Construimos la imagen con las instrucciones:
    • Ejecutamos docker build -t capside/nodejs:v4.1.0