Professional Documents
Culture Documents
Manejo de Imagenes
Manejo de Imagenes
Creación de imágenes
4. Creación de imágenes
• Arquitectura de imágenes
• Crear la primera imagen
• Que es Dockerfile
• Instrucciones en Dockerfile
• Subir y descargar imágenes en DockerHub
• Caché en Docker
• Buenas prácticas
• 4.1 Arquitectura de imágenes
• Imágenes
Fuente :https://docs.docker.com/storage/storagedriver/images/container-layers.jpg
4.1 Arquitectura de imágenes
• Imágenes
Fuente :https://docs.docker.com/storage/storagedriver/images/container-layers.jpg
4.1 Arquitectura de imágenes
• Imágenes
Fuente :https://docs.docker.com/storage/storagedriver/images/container-layers.jpg
4. Creación de imágenes
• Arquitectura de imágenes
• Crear la primera imagen
• Que es Dockerfile
• Instrucciones en Dockerfile
• Subir y descargar imágenes en DockerHub
• Caché en Docker
• Buenas prácticas
• 4.2 Crear la primera imagen
• Directorio_Raiz
➢ Carpetas y ficheros
➢ Dockerfile
➢ .dockerignore
4. Creación de imágenes
• Arquitectura de imágenes
• Crear la primera imagen
• Que es Dockerfile
• Instrucciones en Dockerfile
• Subir y descargar imágenes en DockerHub
• Caché en Docker
• Buenas prácticas
4.3 ¿Qué es Dockerfile?
• Fichero de texto
https://docs.docker.com/develop/develop-
images/dockerfile_best-practices/#dockerfile-instructions
4.4 Instrucciones en Dockerfile
• Ejemplos
FROM ubuntu:18.04
FROM ubuntu:18.04 RUN apt-get update -y
RUN apt-get update -y COPY . /app
COPY . /app WORKDIR /app
CMD python app/app.py ENTRYPOINT ["python"]
CMD ["app.py"]
4.4 Instrucciones en Dockerfile
• RUN: ejecutará los comandos en una nueva capa en la
parte superior de la imagen actual y confirmará los
resultados
• ENTRYPOINT
4.4 Instrucciones en Dockerfile
• LABEL
LABEL <key>=<value>
LABEL multi.label1="value1" \
multi.label2="value2" \
other="value3"
4.4 Instrucciones en Dockerfile
• WORKDIR
WORKDIR /opt/webapp/db
CMD ["mkdir dir1"]
WORKDIR /opt/webapp
CMD ["mkdir dir2"]
• ADD
ADD fichero.txt /opt/$MYPATH/fichero.txt
• EXPOSE
EXPOSE 8080
EXPOSE 8080/UDP
FROM ubuntu:latest
CMD ["bash"]
4.4 Instrucciones en Dockerfile
FROM debian
LABEL version="1.0" author="Jose Luis Llorente"
EXPOSE 80
ADD ["index.html","/var/html/"]
o Registro
o Repositorio
o Etiqueta
4.6 Caché en Docker
• Crear cuenta en https://hub.docker.com/
•
4.6 Subir y descargar imágenes en DockerHub
• >docker login
• >docker push <id_user>/<imagen>[:TAG]
• >docker pull <id_user>/<imagen>[:TAG]
4. Creación de imágenes
• Arquitectura de imágenes
• Crear la primera imagen
• Que es Dockerfile
• Instrucciones en Dockerfile
• Subir y descargar imágenes en DockerHub
• Caché en Docker
• Buenas prácticas
4.6 Caché en Docker
• Afecta al pull, push y al build
Fuente: http://static.tumblr.com/mpxyjs6/U54o87rzd/cache-1.png
4.6 Caché en Docker
• No siempre se quiere usar la caché
o -no-cache
4. Creación de imágenes
• Arquitectura de imágenes
• Crear la primera imagen
• Que es Dockerfile
• Instrucciones en Dockerfile
• Subir y descargar imágenes en DockerHub
• Caché en Docker
• Buenas prácticas
4.7 Buenas Prácticas
• Minimizar el contenido a lo estrictamente indispensable
• Optimizar Instrucciones
RUN apt-get update RUN \
RUN apt-get install -y git apt-get update && \
RUN apt-get install -y wget apt-get install -y git \
RUN wget some.tar.gz wget && \ wget some.tar.gz && \
RUN tar -xvzf some.tar.gz tar -xvzf some.tar.gz
•
bzr \
Uso de Dockerignore cvs \
• Un proceso por contenedor git \
mercurial \
subversion