Home >Internet >Jug málaga docker 101 - final

Jug málaga docker 101 - final

Date post:15-Apr-2017
Category:
View:214 times
Download:0 times
Share this document with a friend
Transcript:

PowerPoint Presentation

Introduccin aDocker23-Feb 2017

Arquitecto en Coritel MlagaMs de 16 aos diseando y desarrollando aplicaciones Java.Ponente en eventos locales (UMA Hackers Week 2016) e internacionales (Java One 2015 & 2016).Aficionado a al ciencia ficcin y el ciclismo de montaa.Podis encontrarme en twitter (@restalion) o github (http://github.com/restalion)

Sobre la sesinInstalacinConceptos generalesdocker-machineDocker HubdockerCreacin de aplicacin SpringBoot de ejemploDockerfileGeneracin de imgenes con MavenPush y Pull a Docker HubEnvo de parmetrosDocker Compose

Instalacin de DockerDocker dispone de instalaciones paraMac, Windows, Windows Server y Linuxhttps://www.docker.com/products/overview

Tambin tiene soporte para plataformas en la cloud como AWS o Azure.

Do It Yourself

Servidores

Podemos representar todos los recursos de un servidor como un gran cubo vaco.

OSServidores

Podemos representar todos los recursos de un servidor como un gran cubo vaco.El cubo empezamos a rellenarlo con el sistema operativo que ocupa una parte del espacio disponible.

OSServidores

LibrerasPodemos representar todos los recursos de un servidor como un gran cubo vaco.El cubo empezamos a rellenarlo con el sistema operativo que ocupa una parte del espacio disponible.Libreras necesarias para la ejecucin de nuestro programa.

OSServidores

LibrerasAplicacin 1Podemos representar todos los recursos de un servidor como un gran cubo vaco.El cubo empezamos a rellenarlo con el sistema operativo que ocupa una parte del espacio disponible.Libreras necesarias para la ejecucin de nuestro programa.Y finalmente nuestra aplicacin.

OSServidores

LibrerasAplicacin 1Podemos representar todos los recursos de un servidor como un gran cubo vaco.El cubo empezamos a rellenarlo con el sistema operativo que ocupa una parte del espacio disponible.Libreras necesarias para la ejecucin de nuestro programa.Y finalmente nuestra aplicacin.

Cmo escalamossiguiendo este esquema?

HOST OSMquinas virtuales

LibrerasAplicacin 1HypervisorGUEST OSLibrerasAplicacin 2GUEST OSLibrerasAplicacin 3GUEST OSPodemos mejorar el uso de los recursos de la mquina mediante la virtualizacin.Por cada mquina virtual tenemos que instalar un sistema operativo que tambin consume recursos.

LibrerasAplicacin 4LibrerasAplicacin 1Aplicacin 2Aplicacin 3LibrerasAplicacin 7LibrerasDocker EngineHOST OSContenedores

LibrerasAplicacin 5

LibrerasEl uso de contenedores propone la reutilizacin del sistema operativo pero manteniendo el aislamiento de cada aplicacin.As mejoramos el uso de los recursos aumentando la densidad de aplicaciones.

Docker-machineNos permite instalar docker en mquinas virtuales y gestionar los hosts con una serie de comandos.Los comandos ms comunes para empezar son:create: Permite crear una mquina docker. Puede ser virtual u hospedada en la cloud.ls: lista las mquinas virtuales disponibles.kill: fuerza la parada de una mquina virtual.env: informa las variables de sistema para trabajar con una mquina.start/stop: inicia o detiene una mquina.ssh: abre una consola contra la mquina.

Docker-machinePara nuestro ejemplo sobre una mquina Windows crearemos una mquina local usando el driver de virtualbox:docker-machine create --driver virtualbox malagaJUG

C:\Users\restalion>docker-machine create --driver virtualbox malagaJUGRunning pre-create checks...(malagaJUG) Image cache directory does not exist, creating it at C:\Users\julio.palma.vazquez\.docker\machine\cache...(malagaJUG) No default Boot2Docker ISO found locally, downloading the latest release...(malagaJUG) Latest release for github.com/boot2docker/boot2docker is v1.13.1(malagaJUG) Downloading C:\Users\restalion\.docker\machine\cache\boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v1.13.1/boot2docker.iso...(malagaJUG) 0%....10%....20%....30%....40%....50%....60%....70%....80%....90%....100%Creating machine...(malagaJUG) Copying C:\Users\restalion\.docker\machine\cache\boot2docker.iso to C:\Users\restalion\.docker\machine\machines\malagaJUG\boot2docker.iso...(malagaJUG) Creating VirtualBox VM...(malagaJUG) Creating SSH key...(malagaJUG) Starting the VM...(malagaJUG) Check network to re-create if needed...(malagaJUG) Windows might ask for the permission to create a network adapter. Sometimes, such confirmation window is minimized in the taskbar.(malagaJUG) Found a new host-only adapter: "VirtualBox Host-Only Ethernet Adapter #3"(malagaJUG) Windows might ask for the permission to configure a network adapter. Sometimes, such confirmation window is minimized in the taskbar.(malagaJUG) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.(malagaJUG) Waiting for an IP...Waiting for machine to be running, this may take a few minutes...Detecting operating system of created instance...Waiting for SSH to be available...Detecting the provisioner...Provisioning with boot2docker...Copying certs to the local machine directory...Copying certs to the remote machine...Setting Docker configuration on the remote daemon...Checking connection to Docker...Docker is up and running!To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env malagaJUGDo It Yourself

Docker-machineEjecutamos el comando propuesto:docker-machine env malagaJUG

C:\Users\restalion>docker-machine env malagaJUGSET DOCKER_TLS_VERIFY=1SET DOCKER_HOST=tcp://192.168.99.100:2376SET DOCKER_CERT_PATH=C:\Users\restalion\.docker\machine\machines\malagaJUGSET DOCKER_MACHINE_NAME=malagaJUGSET COMPOSE_CONVERT_WINDOWS_PATHS=trueREM Run this command to configure your shell:REM @FOR /f "tokens=*" %i IN ('docker-machine env malagaJUG') DO @%i

C:\Users\restalion>@FOR /f "tokens=*" %i IN ('docker-machine env malagaJUG') DO @%iDo It Yourself

DockerHubSe trata de un repositorio de imgeneshttps://hub.docker.com/Podemos encontrar imgenes oficiales de muchos productosEs necesario registro pero el servicio es gratuitoExiste la posibilidad de tener repositorios privados (con coste)Un ejemplo de uso sera descargarnos y ejecutar la imagen de MongoDB:docker run -p 27017:27017 mongoEl comando se descargar la imagen de mongo y dejar operativa una instancia de la misma en el puerto que se le indique.El parmetro -p nos permite mapear los puertos al valor que deseemos.

DockerComando para interactuar con imgenes y contenedores:docker images: muestra las imgenes disponiblesdocker ps: muestra los contenedoresdocker rm/rmi: elimina los contenedore/imgenesdocker run: ejecuta un comando en un nuevo contenedordocker start/stop: inicia o detiene un contenedor existentedocker build: construye una imagen a partir de un fichero Dockerfiledocker push/pull: enva/recupera una imagen desde un registro

Spring boot applicationLa aplicacin spring boot ms sencilla posible que utilice una BBDD mongoDB:Vamos a http://start.spring.io/En dependencies seleccionamos: MongoDB, Rest Repositories, Lombok

Do It Yourself

Spring boot applicationLa aplicacin spring boot ms sencilla posible que utilice una BBDD mongoDB:Vamos a http://start.spring.io/En dependencies seleccionamos: MongoDB, Rest Repositories, LombokImportamos el proyecto descargado en nuestro IDE favorito (Eclipse en mi caso)Creamos una entidad sencilla.

Do It Yourself

Spring boot applicationLa aplicacin spring boot ms sencilla posible que utilice una BBDD mongoDB:Vamos a http://start.spring.io/En dependencies seleccionamos: MongoDB, Rest Repositories, LombokImportamos el proyecto descargado en nuestro IDE favorito (Eclipse en mi caso)Creamos una entidad sencilla.Creamos el dao para sa entidad.

Do It Yourself

Spring boot applicationLa aplicacin spring boot ms sencilla posible que utilice una BBDD mongoDB:Vamos a http://start.spring.io/En dependencies seleccionamos: MongoDB, Rest Repositories, LombokImportamos el proyecto descargado en nuestro IDE favorito (Eclipse en mi caso)Creamos una entidad sencilla.Creamos el dao para sa entidad.Configuramos la aplicacin para usar la BBDD de docker.

Do It Yourself

Spring boot applicationLa aplicacin spring boot ms sencilla posible que utilice una BBDD mongoDB:Vamos a http://start.spring.io/En dependencies seleccionamos: MongoDB, Rest Repositories, LombokImportamos el proyecto descargado en nuestro IDE favorito (Eclipse en mi caso)Creamos una entidad sencilla.Creamos el dao para sa entidad.Configuramos la aplicacin para usar la BBDD de docker. o clonamos el cdigo desde github: https://github.com/restalion/docker-demo

Do It Yourself

DockerfileFichero que nos permite describir un contenedor Docker para nuestra aplicacinEl formato del fichero es el siguiente:# ComentarioINSTRUCCIN argumentosContiene una serie de instrucciones:FROM RUN CMD comando parametro1 parametro2EXPOSE ADD VOLUME ENV

Dockerfile# imagen origenFROM azul/zulu-openjdk:8u121

# volumen necesario para el contenedor tomcatVOLUME /tmp

# modificamos el nombre de la aplicacinADD docker-demo-0.1.0-SNAPSHOT.jar app.jar

# actualizamos el timestampRUN sh -c 'touch /app.jar'

# creamos las opciones de entorno de javaENV JAVA_OPTS=""

# marcamos como punto de entrada la ejecucin de nuestra aplicacinENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

# Exponemos el puerto 8080EXPOSE 8080

Do It Yourself

Genera tus imgenes como SpotifyUna vez creado el fichero Docker lo situamos dentro del proyecto en la ruta /src/main/docker/DockerfilePodemos ejecutar la generacin de la imagen con: mvn package docker:buildUna vez ejecutado tendremos la imagen instalada en nuestra mquina local

Click here to load reader

Embed Size (px)
Recommended