Guia Docker

Universidad Cauca –Daniel Viveros del Esteban [GUIA DOCKER] En esta guía usted encontrara además de una breve descripc

Views 232 Downloads 7 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Universidad Cauca –Daniel Viveros

del Esteban

[GUIA DOCKER] En esta guía usted encontrara además de una breve descripción de Docker, sus ventajas y desventajas, una breve guía de instalación.

Tabla de contenido 1. INTRODUCCION............................................................................................... 3 DEVELOP, SHIP AND RUN ANY APPLICATION, ANYWHERE..................................3 2. CARACTERÍSTICAS Y ELEMENTOS....................................................................4 2.1 CARACTERÍSTICAS...................................................................................... 4 2.1.1 Portabilidad:......................................................................................... 4 2.1.2 Ligereza:.............................................................................................. 4 2.1.3 Autosuficiencia:................................................................................... 4 2.2 ELEMENTOS............................................................................................... 4 2.2.1 Una imagen......................................................................................... 4 2.2.2 Los repositorios o registros..................................................................4 2.2.3 Los contenedores................................................................................. 4 3. FUNCIONAMIENTO Y ESCENARIOS DE USO.....................................................6 3.1 ¿CÓMO FUNCIONA DOCKER?.....................................................................6 3.2 ESCENARIOS DE USO................................................................................. 6 4. VENTAJAS Y DEVENTAJAS................................................................................. 7 4.1 VENTAJAS................................................................................................... 7 4.2 DESVENTAJAS............................................................................................. 7 5. ENTORNOS VIRTUALIZADOS(VAGRANT VS DOCKER).......................................8 5.1 Vagrant...................................................................................................... 8 5.2 Docker........................................................................................................ 8 5.3 DIFERENCIAS.............................................................................................. 8 6. INSTALACION................................................................................................. 10

12

12

1. INTRODUCCION. DEVELOP, SHIP AND RUN ANY APPLICATION, ANYWHERE.

Docker es una herramienta de código abierto que permite la creación de contenedores1 o “pequeñas máquinas virtuales” más livianas y menos exigentes con los chips y la memoria del equipo donde se ejecutará, mas portables y autosuficientes cuyo objetivo principal es permitir a un desarrollador que su contenedor construido en su equipo pueda correr a gran escala en máquinas virtuales o directamente sobre el hardware o en la nube pública. Para esto Docker hace uso de un método de virtualización llamado LXC que permite crear varios contenedores que corren en paralelo sobre la misma máquina, lo que permite mayor flexibilidad y rendimiento al no emular una máquina virtual completa.

1

contienen todo lo necesario para que una aplicación pueda funcionar sin necesidad de acceder a un repositorio externo al contenedor.

12

2. CARACTERÍSTICAS Y ELEMENTOS. 2.1 CARACTERÍSTICAS. Docker debe en parte su éxito a sus características como son la portabilidad, ligereza y su autosuficiencia lo que ha generado una gran aceptación en grandes empresas como DigitalOcean o Google quien anuncio la integración de soporte para este software. 2.1.1 Portabilidad: Los contenedores creados pueden ser desplegados en otros sistemas que soporten este tipo de tecnología, lo cual nos ahorra el coste que pueda traer la instalación de las aplicaciones en el nuevo entorno. 2.1.2 Ligereza: En comparación con otros sistemas de virtualización, Docker nos muestra un significativo ahorro a la hora de desplegar o almacenar los diferentes contenedores, debido a que esta tecnología hace uso de las herramientas necesarias sin necesidad de cargar un sistema completo. 2.1.3 Autosuficiencia: Un contenedor Docker no contiene un sistema completo, solo contiene las librerías y archivos necesarios para poder desplegar las funcionalidades que contenga, además de que el mismo es el encargado de la gestión de sus contenedores y aplicaciones.

2.2 ELEMENTOS. Docker se compone de tres elementos 2.2.1 Una imagen Una imagen Docker puede verse como un SO con aplicaciones instaladas, sobre la cual podemos empezar a añadir las aplicaciones que necesitemos en otro equipo donde se tenga la intención de usar la imagen. Docker ofrece la posibilidad de crear y actualizar estas imágenes de manera sencilla. 2.2.2 Los repositorios o registros Son los encargados de contener las imágenes creadas por usuarios que fueron puestas a disposición del público. Existen repositorios de carácter público que son totalmente gratuitos o repositorios privados, para los cuales debemos comprar las imágenes que necesitemos. Estos registros nos permiten desarrollar y desplegar aplicaciones de una manera simple con ayuda de plantillas, gracias a las cuales reducimos el tiempo de creación e implementación de nuestras aplicaciones o sistemas.

12

2.2.3 Los contenedores Podemos ver los contenedores como un tipo de directorio, contienen todo lo que necesita una aplicación necesita para su funcionamiento sin necesidad de acceder a un repositorio externo al mismo contenedor, Cada contenedor es una plataforma de aplicaciones aislada del resto que podamos desplegar o encontrar en el mismo host.

12

3. FUNCIONAMIENTO Y ESCENARIOS DE USO. 3.1 ¿CÓMO FUNCIONA DOCKER? Una vez vistos algunos conceptos de Docker y sus elementos, veremos ahora un poco del funcionamiento de esta herramienta. Inicialmente contamos con una imagen base, sobre la cual se realizaran los cambios necesarios. Una vez confirmados los cambios, mediante la aplicación Docker, se creara una imagen que solamente contiene las diferencias que hemos añadido con respecto a la base. Cada vez que queramos ejecutar esta imagen necesitaremos de nuestra base. Docker se encargara de acoplar la case, la imagen y las capas con los cambios para darnos un entorno que queremos desplegar sobre el cual vamos a trabajar.

3.2 ESCENARIOS DE USO. En el sitio oficial de Docker encontramos que Docker es una Herramienta disponible para Ubuntu, ArchLinux, Gentoo, Fedora, OpenSUSE y FrugalWare, además podemos encontrar indicaciones para desplegar contenedores en entornos Windows, Mac, Amazon EC2, Rackspace o Google Cloud. Esta herramienta se puede usar en ambiente de integración 2 continua, es decir que sea necesario hacer integraciones automáticas de un proyecto lo más a menudo posible, con el fin de detectar fallos de manera temprana. Docker se usa para garantizar la integridad de una aplicación en diferentes ambientes ya que permite desplegar una aplicación en varios entornos sin necesidad de realizar cambios significativos en el código. Docker puede ser usado cuando es necesario manejar versiones de entornos junto con el código de las aplicaciones, además nos permite tener entornos colaborativos y desechables al mismo tiempo.

2 Compilación y ejecución de pruebas de todo un proyecto

12

4. VENTAJAS Y DEVENTAJAS. 4.1 VENTAJAS. Algunas de las ventajas de Docker son: Docker se encuentra disponible para una gran variedad de sistemas operativos (haciendo la salvedad de que para Windows lo que hace es instalarlo en una máquina virtual con una imagen de Linux), sin embargo no se encuentra atado a ninguno de estos, lo cual hace de Docker una herramienta portable. Hay que aclarar que a pesar de que los cambios realizados en cada contenedor deben ser persistidos o se perderán una vez se apague, no es una desventaja ya que debemos tener en cuenta la cantidad de veces que se realizan cambios o se borran archivos vitales de manera errónea sin poder revertir los cambios. Docker por ser un sistema de contenedores no exige una maquina física lo cual nos da una gran versatilidad. Arrancar un contenedor tiene el mismo coste en tiempo que arrancar un proceso cualquiera en el sistema, por otro lado arrancar una máquina virtual completa tiene un coste mayor debido al tiempo que demora en arrancar el sistema operativo de la máquina, con lo cual ganamos agilidad.

4.2 DESVENTAJAS. Docker al no ser un sistema operativo como tal, no permite la configuración de el mismo, es decir, si por alguna razón existiera la necesidad de alterar el archivo ”hosts” no se podría hacer, a pesar de que algunas personas ya lo han conseguido. A pesar de la portabilidad de Docker, esta herramienta presenta un inconveniente a la hora de ser usado en entornos de 32 bits.

12

5. ENTORNOS VIRTUALIZADOS(VAGRANT VS DOCKER). Entre las ventajas de un entorno virtualizado para desarrollar software podemos encontrar: La configuración del entorno de desarrollo es transparente a la configuración de la maquina host, además nos facilita trabajar con proyectos con distintas dependencias, asi como facilita el test de nuevas versiones sin que la máquina host se vea comprometida. La virtualización ayuda a eliminar además las inconsistencias entre las maquinas usadas en el desarrollo y producción de una aplicacion.

5.1 Vagrant. Vagrant es un gestor de máquinas virtuales, capaz de conectarse a otros gestores e indicarles los requisitos que serán necesarios para desplegar una máquina, para lo cual se hacen necesarias algunas herramientas como son un proveedor qque albergara un entorno y un aprovisionador, el cual se encargara de ejecutar las instrucciones que le proporcionesmos a travez de un fichero de cofiguracion, permitiendo asi poner a punto un sistema con las condiciones que necesitemos. Debido a que tenemos unos requisitos pre definidos como el tamaño del disco, RAM, entre otros, cada máquina que este corriendo de manera simultánea, tiene que cargar estos recursos que le fueron asignados desde su arranque.

5.2 Docker. Docker no emula una VM en su totalidad, solo corre las librerías y los recursos necesarios para ejecutar una aplicación. Docker pone a disposición un fichero de configuración, sobre el cual indicamos los programas que necesitamos para ejecutar nuestra aplicación. Docker a pesar de que funciona bajo Linux, Windows y Mac, solo puede ejecutar aplicaciones basadas en Linux.

5.3 DIFERENCIAS. Ahora vamos a realizar un paralelismo entre los dos entornos antes mencionados. Vagrant es un gestor de software que puede conectar con providers (Docker por ejemplo) para levantar un sistema operativo completo con las características y recursos que nos sean necesarios, Docker solo levanta unos cuantos recursos y crea pequeños entornos basados en Linux.

12

La virtualización estándar compromete más recursos que la virtualización por contenedores, con menos capas de separación que interfieran en los procesos, a su vez la virtualización estándar está completamente aislada de la maquina host y puede ejecutar todo tipo de aplicaciones, no solo las basadas en Linux. El arranque de los contenedores está en el orden de unos cuantos segundos, ya que solo usa los recursos activos del sistema en el que se encuentra, permite además disponer de instancias activas de manera eficiente debido al consumo exclusivo de los recursos específicos para una aplicación en ejecución, contrario a la virtualización que asigna recursos desde el inicio. La comunicación entre las instancias de Docker es más complicada pero más eficiente, al contrario de las virtualizaciones tradicionales que levantan instancias de la misma manera que levantan un equipo.

12

6. INSTALACION Y CONFIGURACION. Una vez aclarado todo lo correspondiente a Docker vamos a ver a continuación la instalación de Docker y su osterior configuración para empezar a usarlo. 1. Nos dirigimos al repositorio de Docker en donde podemos encontrar la versión más reciente de Docker para Windows 2. Descargamos la versión ejecutable(.exe)

Una vez se descarga el ejecutable 3. Lanzamos el ejecutable. 4. Continuamos con la ejecución del instalador.

12

5.

Seleccionamos El software que necesitamos (si ya tenemos instalado algún software no es necesario volver a instalarlo). 6. Terminamos con la ejecución del instalador.

7. Ejecutamos Docker2Start (Icono que se crea al finalizar la instalación) Ahora procedemos a configurarlo para su uso. 1. Iniciamos una consola de comandos en Windows (cmd) para ello presionamos la tecla de Windows + R, y escribimos cmd. 2. Una vez tengamos una terminal abierta escribimos lo siguiente: set PATH=%PATH%;"c:\Program Files (x86)\Git\bin".

12

Una vez estemos en esta dirección podremos ejecutar: boot2docker start Y Podremos utilizar Docker según sea nuestra necesidad.

12