Advertisement
Advertisement

More Related Content

Advertisement
Advertisement

Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]

  1. Docker Entorno de trabajo configurado en 1 minuto Ruben Egiguren (keopx) 13/05/2017
  2. Acerca de mí Drupal Developer, Software Libre enthusiast, new technologies and geek Ruben Egiguren a.k.a. Keopx Blog: www.keopx.net Drupal: www.drupal.org/u/keopx Miembro de: Drupal association Asociación Española de Drupal G.D.O Basque Country … Drupal Developer
  3. Definimos, diseñamos y construimos negocios digitales
  4. Introducción
  5. Introducción Hablaremos de ¿Qué es Docker? Ventajas de trabajar con Docker (vs VM) Instalación de Docker Componentes de Docker Principales comandos de Docker Docker-Compose Introducción a DockerHub DevOps Cómo usarlo en el día a día. Demo time
  6. ¿Qué es Docker?
  7. ¿Qué es Docker? Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software. Permite crear, empaquetar y distribuir sus aplicaciones rápidamente. Docker sirve para ejecutar “máquinas virtuales” ligeras.
  8. ¿Qué es Docker?
  9. Ventajas de trabajar con Docker (vs VM)
  10. Ventajas de trabajar con Docker (vs VM) Principales características: Consume pocos recursos, lo que permite desplegar multitud de contenedores en un mismo equipo físico. Se elimina el problema de dependencias de las aplicaciones. Los contenedores son livianos y facilitan su almacenaje, transporte y despliegue. Hubs de imagenes públicos y privados de imágenes Compatibilidad Multi-Sistema, podremos desplegar nuestros contenedores en multitud de plataformas.
  11. Ventajas de trabajar con Docker (vs VM) aprovisionamiento -> configuración -> despliegue -> ejecución
  12. Ventajas de trabajar con Docker Máquina Virtual (VM) Simula a un ordenador Un duplicado eficiente y aislado de una máquina física. Algunos sistemas: VirtualBox (Libre - escritorio) QEMU (Libre - escritorio) VMWARE (Gratis/Pago - escritorio/server) KVM (Libre - server) XEN (Libre - server)
  13. Ventajas de trabajar con Docker Vagrant Vagrant es una aplicación escrita en Ruby Facilita considerablemente la creación de entornos virtuales de desarrollo Vagrant nos abstrae del sistema de virtualización Nos permite instalar y configurar el software de la VM Herramientas de automatización Puppet, chef, ansible,... Más info: www.vagrantup.com
  14. Ventajas de trabajar con Docker Vagrant
  15. Ventajas de trabajar con Docker Docker Crear, enviar y ejecutar aplicaciones distribuidas. Portable, ligero en ejecución y herramienta de empaquetado. Más info: www.docker.com/ 15
  16. Ventajas de trabajar con Docker Docker 16
  17. Ventajas de trabajar con Docker VM (Vagrant) vs. Docker 17
  18. Instalación de Docker
  19. Instalación de Docker Requisitos: Linux Docker funciona mejor con el kernel 3.8 Mac Windows
  20. Instalación de Docker Linux (Ubuntu) sudo apt-get remove docker docker-engine sudo apt-get install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" Fuente: https://docs.docker.com/engine/installation/linux/ubuntu/
  21. Instalación de Docker Linux (Ubuntu) sudo apt-get update sudo apt-get install docker-ce sudo groupadd docker sudo usermod -aG docker $USER Fuente: https://docs.docker.com/engine/installation/linux/ubuntu/
  22. Instalación de Docker Mac Descárgate la app para mac Arrastrar e instalar. Fuente: https://docs.docker.com/docker-for-mac/install/#install-and-run-docker-for-mac
  23. Instalación de Docker Windows Descárgate la app para Windows Instalar (msi) Fuente: https://docs.docker.com/docker-for-windows/install/
  24. Componentes de Docker
  25. Componentes de Docker Image: una capa de sólo lectura que nunca cambia (casi), semejante a una plantilla. Container: una capa de lectura escritura. Una instancia a partir de una image. Hub: Es el repositorio de images docker. Link: Acción de linkear un container con otro Volume: Compartir carpeta/fichero entre containers/Host
  26. Componentes de Docker
  27. Principales comandos de Docker
  28. Principales comandos de Docker Listar: $ docker images Buscar: $ docker search alpine Descargar: $ docker pull alpine:latest Eliminar: $ docker rmi alpine:tag Construir: $ docker build -t myimage:latest . Subir: $ docker push myimage:latest
  29. Principales comandos de Docker Crear imagen con Dockerfile Dockerfile FROM debian:jessie MAINTAINER keopx <keopx@keopx.net> RUN apt-get -qq update && apt-get -qqy upgrade RUN apt-get -qy install mysql-client mysql-server RUN apt-get -q autoclean && rm -rf /var/lib/apt/lists/* RUN sed -i "s/^bind-address/#bind-address/" /etc/mysql/my.cnf VOLUME /var/lib/mysql COPY scripts/docker-entrypoint.sh /usr/local/bin/ RUN chmod a+x /usr/local/bin/docker-entrypoint.sh RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 3306 CMD ["mysqld"] Fuente: https://github.com/keopx/docker-mysql/blob/master/5.5/Dockerfile
  30. Principales comandos de Docker Lanzar docker Build $ docker build -t . Lanzar $ docker run hello-world Correr el bash de un Ubuntu $ docker run -it ubuntu bash
  31. Principales comandos de Docker Comandos básicos containers Listar $ docker ps -a Ejecutar a partir de un image:tag $ docker run --name mycontainer -ti alpine:latest /bin/sh Start|Stop|Restart $ docker start|stop|restart mycontainer Eliminar $ docker rm mycontainer
  32. Docker Compose
  33. Docker Compose Instalación de Docker Compose Sirve para manejar distintos containers. Instalación: Mediante curl: $ curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-com pose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ chmod +x /usr/local/bin/docker-compose Mediante pip: $ sudo pip install docker-compose Verificar: $ docker-compose --version
  34. Docker Compose Crear docker-compose.yml Sirve para manejar distintos containers. Crear archivo docker-compose.yml: version: '2' services: web: image: keopx/apache-php:7.0 ports: - "8008:80" links: - mysql mysql: image: keopx/mysql:5.5 ports: - "3306:3306" volumes: - ./data/database:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=drupal - MYSQL_USER=drupaluser - MYSQL_PASSWORD=drupalpass Fuente: https://github.com/keopx/docker-lamp/blob/master/docker-compose.yml
  35. Docker Compose Principales comandos de Docker ● Ejecutar el comando: $ docker-compose up (-d) ● Abrir en browser: http://localhost:8008 ● En caso de usar Mac OS X o Windows reemplazar localhost con la ip de: $ boot2docker ip Fuente: https://github.com/keopx/docker-lamp/blob/master/docker-compose.yml
  36. Introducción a DockerHub
  37. Introducción a DockerHub Crear un repositorio en Docker Hub que obtenga los Dockerfile de un repositorio de GitHub y construya las imágenes de los Dockerfile de forma automática cuando haya cambios en los archivos dockerfile de GitHub. Crear una cuenta en Docker Hub Subir el archivo Dockerfile a un repositorio de GitHub/Bitbucket Crear el repositorio en DockerHub y la build automática
  38. Introducción a DockerHub
  39. DevOps
  40. DevOps DevOps es un acrónimo inglés de development (desarrollo) y operations (operaciones) Qué ofrece Entornos configurados para su uso Entornos aislados Evitar conflictos de versiones y/o configuraciones Agilizar la puesta a punto de los entornos de desarrollo/testing/producción Entornos CI
  41. DevOps Pero la maquina virtual solo es una parte Aísla el sistema pero… No nos facilita muchas operaciones Nos mantiene lo que hagamos, pero y si cambio algo y se “rompe” No podemos desplegarlo tal y como está a producción ...
  42. DevOps DevOps es algo así como....
  43. DevOps http://i.imgur.com/b1YihdT.gif
  44. Cómo usarlo en el día a día
  45. Cómo usarlo en el día a día Sistemas homogéneos Mismas versiones Mismas configuraciones Todos en el proyecto usan el mismo entorno Se acabó el, “en mi maquina funciona” No hay excepciones Si se requiere un cambio se realiza en la configuración o en el contenedor Exportable a producción *
  46. Cómo usarlo en el día a día Comienzas un nuevo proyecto Clonas el repo del proyecto Arrancas docker compose Se supone que es más cómodo para sistemas complejos. Importas la base de datos Puede que tengas incluso un setup.sh que haga esto Ya puedes comenzar a trabajar
  47. Demo time
  48. Eskerrik asko!
  49. GNU/GPL Licence Drupal Developer Ruben Egiguren (keopx)
Advertisement