Taula de continguts

Dockerfile

fichero de scripting para generar un contenedor

FROM debian:latest
RUN apt-get update && apt-get install -y wget
docker build -t <nombre> .: genera una nueva imagen con repositorio <tag>

vagrant rsync : sincroniza el directorio «compartido» entre el host y la imagen vagrant También se puede lanzar un proceso vagrant rsync-auto que se encarga de ir haciendo este proceso automaticamente

instrucciones

FROM

imagen de referencia

RUN

ejecuta comandos en el contenedor (linux)

CMD

CMD [«echo»,«hello world»]: comando que se ejecuta por defecto

al separar las líneas, el primer RUN es un layer y quedará cacheado (y usado en otras imágenes), lo que hará que nuestro sistema no se actualice. Por eso la línea RUN del update incluye la instalación de soft
FROM debian
RUN apt-get update
RUN apt-get install -y nginx
CMD ["nginx","-g","daemon off;"]

OPTIMIZAR

lo que se tenga que borrar, se tiene que hacer en la misma layer (RUN)

FROM debian
RUN apt-get update \
    && apt-get install -y nginx \
    && rm -rf /var/lib/apt/lists/*
CMD ["nginx","-g","daemon off;"]

COPY

UNION FILE SYSTEM - relación con layers https://en.wikipedia.org/wiki/UnionFS

LAB2

FROM debian:latest
RUN apt update && apt install -y nginx
CMD ["nginx","-g","daemon off;"]
COPY index.html /var/www/html/index.html
importante que el COPY esté por debajo del RUN (LAYERS!!!)

volumes

los volúmenes se usan para persistencia, ya que un contenedor cuando se para, todo lo que hubiese se pierde.

label

arg

env

add

expose

workdir

imágenes alpine

user

si extendemos de una imagen que ha cambiado el USER y nosotros hemos de realizar cambios, hemos de hacer el cambio a USER root, hacemos lo que necesitemos y lo volvemos a dejar con el usuario que toque.

context

bbdd

bien para desarrollo, no para producción

es un cuello de botella, ya que para mantener la persistencia hay que montar un volumen por NFS (red), lo que hace que sea lento

los DBA ullen de las máquinas virtuales, quieren servidores físicos, así que de docker…

volumes

entrypoint

los entrypoint y los cmd hay que hacerlo a la manera JSON [«comando»,«comando»] para evitar ejecuciones extrañas

proxy-pass

configuración de apache para que al recibir una petición delegue en otros contenedores

imagen creada de docker donde se le pasa por variable de entorno el destino al que ha delegar, ayudado por el entrypoint

.dockerignore

permite expresiones regulares, como .gitignore y metes todos aquellos ficheros que no han de formar parte de la imagen