Docker

Contenido Docker - Inicio Docker - Descripción general Docker: instalación de Docker en Linux Docker - Instalación Docke

Views 111 Downloads 3 File size 7MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Contenido Docker - Inicio Docker - Descripción general Docker: instalación de Docker en Linux Docker - Instalación Docker - Hub Docker - Imágenes Docker - Contenedores Docker - Trabajando con contenedores Docker - Arquitectura Docker - Contenedor y Anfitriones Docker - Configuración Docker - Contenedores y Conchas Docker - Archivo Docker - Archivos de construcción Docker - Repositorios públicos Docker - Gestión de puertos Docker - Registros privados Creación de un archivo Docker de servidor web

Docker - Comandos de instrucciones Docker - Vinculación de contenedores Docker - Almacenamiento Docker - Redes Docker: configuración de Node.js Docker - Configuración de MongoDB Docker - Configuración de NGINX Docker - Caja de herramientas Docker - Configuración de ASP.Net Docker - Nube Docker - Registro Docker - Componer Docker - Integración continua Docker - Arquitectura Kubernetes Docker - Trabajo de Kubernetes

Docker - Descripción general Docker es un servicio de gestión de contenedores. Las palabras clave de Docker son desarrollar, enviar y ejecutar en cualquier lugar. La idea de Docker es que los desarrolladores desarrollen fácilmente aplicaciones, las envíen a contenedores que luego se pueden implementar en cualquier lugar. El lanzamiento inicial de Docker fue en marzo de 2013 y, desde entonces, se ha convertido en la palabra de moda para el desarrollo del mundo moderno, especialmente frente a proyectos basados en Agile.

Características de Docker 

Docker tiene la capacidad de reducir el tamaño del desarrollo al proporcionar una huella más pequeña del sistema operativo a través de contenedores.



Con los contenedores, es más fácil para los equipos de diferentes unidades, como desarrollo, control de calidad y operaciones, trabajar sin problemas en todas las aplicaciones.



Puede implementar contenedores Docker en cualquier lugar, en cualquier máquina física y virtual e incluso en la nube.



Como los contenedores Docker son bastante livianos, son fácilmente escalables.

Componentes de Docker Docker tiene los siguientes componentes 

Docker para Mac : permite ejecutar contenedores Docker en Mac OS.



Docker para Linux : permite ejecutar contenedores Docker en el sistema operativo Linux.



Docker para Windows : permite ejecutar contenedores Docker en el sistema operativo Windows.



Docker Engine : se utiliza para crear imágenes de Docker y crear contenedores de Docker.



Docker Hub : este es el registro que se utiliza para alojar varias imágenes de Docker.



Docker Compose : se utiliza para definir aplicaciones que utilizan múltiples contenedores Docker.

Discutiremos todos estos componentes en detalle en los capítulos siguientes. El sitio oficial de Docker es https://www.docker.com/. El sitio tiene toda la información y documentación sobre el software Docker. También tiene los enlaces de descarga para varios sistemas operativos.

Instalar Docker en Linux Para comenzar la instalación de Docker, vamos a utilizar una instancia de Ubuntu. Puede usar Oracle Virtual Box para configurar una instancia virtual de Linux, en caso de que aún no la tenga. La siguiente captura de pantalla muestra un servidor Ubuntu simple que se ha instalado en Oracle Virtual Box. Hay un usuario del sistema operativo denominado demo que se ha definido en el sistema y que tiene acceso completo a la raíz del servidor.

Para instalar Docker, debemos seguir los pasos que se detallan a continuación. Paso 1 : antes de instalar Docker, primero debe asegurarse de tener la versión correcta del kernel de Linux en ejecución. Docker solo está diseñado para ejecutarse en el kernel de Linux versión 3.8 y superior. Podemos hacer esto ejecutando el siguiente comando. tu nombre

Este método devuelve la información del sistema sobre el sistema Linux. Sintaxis uname -a Opciones

a - Esto se utiliza para garantizar que se devuelva la información del sistema. Valor de retorno

Este método devuelve la siguiente información sobre el sistema Linux: 

nombre del núcleo



nombre del nodo



lanzamiento del núcleo



versión del núcleo



máquina



procesador



plataforma de hardware



sistema operativo

Ejemplo uname –a Salida

Cuando ejecutamos el comando anterior, obtendremos el siguiente resultado:

En el resultado, podemos ver que la versión del kernel de Linux es 4.2.0-27, que es superior a la versión 3.8, por lo que estamos listos. Paso 2 : debe actualizar el sistema operativo con los paquetes más recientes, lo que se puede hacer mediante el siguiente comando: apt-get

Este método instala paquetes de Internet en el sistema Linux. Sintaxis

sudo apt-get update Opciones 

sudo : el comando sudo se usa para garantizar que el comando se ejecute con acceso root.



actualización : la opción de actualización se utiliza para garantizar que todos los paquetes se actualicen en el sistema Linux.

Valor de retorno

Ninguna Ejemplo sudo apt-get update Salida

Cuando ejecutamos el comando anterior, obtendremos el siguiente resultado:

www.postparaprogramadores.com /

Este comando se conectará a Internet y descargará los últimos paquetes del sistema para Ubuntu. Paso 3 : el siguiente paso es instalar los certificados necesarios que se necesitarán para trabajar con el sitio Docker más adelante para descargar los paquetes Docker necesarios. Se puede hacer con el siguiente comando. sudo apt-get install apt-transport-https ca-certificates

Síguenos en Instagram para que estés al tanto de los nuevos libros de programación. Click aqui

Paso 4 : el siguiente paso es agregar la nueva clave GPG. Esta clave es necesaria para garantizar que todos los datos estén encriptados al descargar los paquetes necesarios para Docker. El siguiente comando descargará la clave con el ID 58118E89F3A912897C070ADBF76221572C52609D desde el servidor de claves hkp: //ha.pool.sks-keyservers.net: 80 y la agrega al llavero adv . Tenga en cuenta que esta clave en particular es necesaria para descargar los paquetes Docker necesarios.

Paso 5 : a continuación, dependiendo de la versión de Ubuntu que tenga, deberá agregar el sitio relevante a docker.list para el administrador de paquetes apt , de modo que pueda detectar los paquetes Docker desde el sitio Docker y descargar ellos en consecuencia.



Precise 12.04 (LTS) ─ deb https://apt.dockerproject.org/repo ubuntu-precision main



Trusty 14.04 (LTS) ─ deb https://apt.dockerproject.org/repo/ ubuntu-trusty main



Wily 15.10 ─ deb https://apt.dockerproject.org/repo ubuntu-wily main



Xenial 16.04 (LTS) - https://apt.dockerproject.org/repo ubuntu-xenial main

Como nuestro sistema operativo es Ubuntu 14.04, usaremos el nombre del repositorio como "deb https://apt.dockerproject.org/repo ubuntu-trusty main". Y luego, necesitaremos agregar este repositorio a docker.list como se mencionó anteriormente. echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main” | sudo tee /etc/apt/sources.list.d/docker.list

Paso 6 : a continuación, emitimos el comando apt-get update para actualizar los paquetes en el sistema Ubuntu.

Paso 7 : si desea verificar que el administrador de paquetes apunta al repositorio correcto, puede hacerlo emitiendo el comando apt-cache .

apt-cache policy docker-engine

En la salida, obtendrá el enlace a https://apt.dockerproject.org/repo/

Paso 8 : emita el comando apt-get update para asegurarse de que todos los paquetes del sistema local estén actualizados.

Paso 9 : para Ubuntu Trusty, Wily y Xenial, tenemos que instalar los paquetes de kernel linux-image-extra- *, que permiten utilizar el controlador de almacenamiento aufs . Este controlador es utilizado por las versiones más nuevas de Docker. Se puede hacer usando el siguiente comando. sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

Paso 10 : el paso final es instalar Docker y podemos hacerlo con el siguiente comando: sudo apt-get install –y docker-engine

Aquí, apt-get usa la opción de instalación para descargar la imagen del motor Docker desde el sitio web de Docker e instalar Docker. El motor Docker es el paquete oficial de Docker Corporation para sistemas basados en Ubuntu.

En la siguiente sección, veremos cómo verificar la versión de Docker que se instaló.

Versión Docker Para ver la versión de Docker ejecutándose, puede emitir el siguiente comando: Sintaxis docker version Opciones 

version : se utiliza para garantizar que el comando Docker devuelva la versión Docker instalada.

Valor de retorno

La salida proporcionará los diversos detalles de la versión de Docker instalada en el sistema. Ejemplo sudo docker version Salida

Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado:

Información de Docker Para ver más información sobre el Docker que se ejecuta en el sistema, puede emitir el siguiente comando: Sintaxis docker info Opciones 

info : se utiliza para garantizar que el comando Docker devuelva la información detallada sobre el servicio Docker instalado.

Valor de retorno

La salida proporcionará los diversos detalles del Docker instalado en el sistema, tales como:  

Numero de contenedores Numero de imagenes



El controlador de almacenamiento utilizado por Docker



El directorio raíz utilizado por Docker El controlador de ejecución utilizado por Docker



Ejemplo

sudo docker info

Salida

Cuando ejecutamos el comando anterior, obtendremos el siguiente resultado:

Docker para Windows Docker tiene soporte listo para usar para Windows, pero necesita tener la siguiente configuración para instalar Docker para Windows. Requisitos del sistema Sistema operativo Windows

Windows 10 de 64 bits

Memoria

2 GB de RAM (recomendado)

Puede descargar Docker desde: https://docs.docker.com/docker-for-windows/

para

Windows

Docker ToolBox Docker ToolBox ha sido diseñado para versiones anteriores de Windows, como Windows 8.1 y Windows 7. Debe instalar la siguiente configuración para instalar Docker para Windows. Requisitos del sistema Sistema operativo Windows

Windows 7, 8, 8.1

Memoria

2 GB de RAM (recomendado)

Virtualización

Esto debería estar habilitado.

Puede descargar Docker desde: https://www.docker.com/products/docker-toolbox

ToolBox

Docker - Instalación Veamos la instalación de cada producto.

Docker para Windows Una vez que se haya descargado el instalador, haga doble clic en él para iniciar el instalador y luego siga los pasos que se detallan a continuación. Paso 1 : haga clic en los términos del Acuerdo y luego en el botón Instalar para continuar con la instalación.

Paso 2 : una vez completado, haga clic en el botón Finalizar para completar la instalación.

Docker ToolBox

Una vez que se haya descargado el instalador, haga doble clic en él para iniciar el instalador y luego siga los pasos que se detallan a continuación. Paso 1 - Haz clic en el botón Siguiente en la pantalla de inicio.

Paso 2 : mantenga la ubicación predeterminada en la siguiente pantalla y haga clic en el botón Siguiente.

Paso 3 : mantenga los componentes predeterminados y haga clic en el botón Siguiente para continuar.

Paso 4 : mantenga las tareas adicionales como están y luego haga clic en el botón Siguiente.

Paso 5 : en la pantalla final, haz clic en el botón Instalar.

Trabajando con Docker Toolbox Veamos ahora cómo Docker Toolbox se puede usar para trabajar con contenedores Docker en Windows. El primer paso es iniciar la aplicación Docker Toolbox para la cual se crea el acceso directo en el escritorio cuando se lleva a cabo la instalación de Docker Toolbox.

A continuación, verá que la configuración se lleva a cabo cuando se inicia Docker toolbox.

Una vez hecho esto, verá Docker configurado y lanzado. Obtendrá un shell interactivo para Docker.

Para probar que Docker se ejecuta correctamente, podemos usar el comando Docker run para descargar y ejecutar un simple contenedor Docker de HelloWorld . El funcionamiento del comando Docker run se muestra a continuación: docker run

Este comando se usa para ejecutar un comando en un contenedor Docker. Sintaxis docker run image

Opciones 

Imagen : este es el nombre de la imagen que se utiliza para ejecutar el contenedor.

Valor de retorno

La salida ejecutará el comando en el contenedor deseado. Ejemplo

sudo docker run hello-world

Este comando descargará la imagen hello-world , si aún no está presente, y ejecutará hello-world como contenedor. Salida

Cuando ejecutamos el comando anterior, obtendremos el siguiente resultado:

Si desea ejecutar Ubuntu OS en Windows, puede descargar la imagen de Ubuntu usando el siguiente comando: Docker run –it Ubuntu bash

Aquí le está diciendo a Docker que ejecute el comando en modo interactivo a través de la opción –it .

En el resultado, puede ver que la imagen de Ubuntu se descarga y se ejecuta y luego iniciará sesión como usuario root en el contenedor de Ubuntu.

Docker - Hub Docker Hub es un servicio de registro en la nube que le permite descargar imágenes de Docker creadas por otras comunidades. También puede cargar sus propias imágenes creadas de Docker en Docker Hub. En este capítulo, veremos cómo descargar y usar la imagen de Jenkins Docker desde Docker Hub. El sitio oficial de edition#/add_ons

Docker

Hub

es: https://www.docker.com/community-

Paso 1 : primero debe hacer un registro simple en Docker Hub.

Paso 2 : una vez que te hayas registrado, iniciarás sesión en Docker Hub.

Paso 3 - A continuación, vamos a buscar y encontrar la imagen de Jenkins.

Paso 4 : si te desplazas hacia abajo en la misma página, puedes ver el comando de extracción de Docker . Esto se usará para descargar la imagen de Jenkins en el servidor local de Ubuntu.

Paso 5 - Ahora, ve al servidor Ubuntu y ejecuta el siguiente comando: sudo docker pull jenkins

Para ejecutar Jenkins, debe ejecutar el siguiente comando:

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

Tenga en cuenta los siguientes puntos sobre el comando sudo anterior : 

Estamos utilizando el comando sudo para garantizar que se ejecute con acceso root.



Aquí, jenkins es el nombre de la imagen que queremos descargar de Docker Hub e instalar en nuestra máquina Ubuntu.



-p se usa para asignar el número de puerto de la imagen interna de Docker a nuestro servidor Ubuntu principal para que podamos acceder al contenedor en consecuencia.

Luego, Jenkins se ejecutará correctamente como contenedor en la máquina Ubuntu.

Docker - Imágenes En Docker, todo se basa en imágenes. Una imagen es una combinación de un sistema de archivos y parámetros. Tomemos un ejemplo del siguiente comando en Docker. docker run hello-world 

El comando Docker es específico y le dice al programa Docker en el sistema operativo que hay que hacer algo.



El comando ejecutar se usa para mencionar que queremos crear una instancia de una imagen, que luego se llama contenedor .



Finalmente, "hello-world" representa la imagen de la que está hecho el contenedor.

Ahora veamos cómo podemos usar la imagen CentOS disponible en Docker Hub para ejecutar CentOS en nuestra máquina Ubuntu. Podemos hacer esto ejecutando el siguiente comando en nuestra máquina Ubuntu: sudo docker run centos –it /bin/bash

Tenga en cuenta los siguientes puntos sobre el comando sudo anterior : 

Estamos utilizando con acceso root .



Aquí, centos es el nombre de la imagen que queremos descargar de Docker Hub e instalar en nuestra máquina Ubuntu.



─it se usa para mencionar que queremos que se ejecute en modo interactivo .



/ bin / bash se usa para ejecutar el shell bash una vez que CentOS está en funcionamiento.

el comando sudo para

garantizar

que

se

ejecute

Mostrar imágenes de Docker Para ver la lista de imágenes de Docker en el sistema, puede emitir el siguiente comando. docker images

Este comando se utiliza para mostrar todas las imágenes instaladas actualmente en el sistema. Sintaxis docker images Opciones

Ninguna Valor de retorno

La salida proporcionará la lista de imágenes en el sistema. Ejemplo

sudo docker images Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

En el resultado anterior, puede ver que el servidor tiene tres imágenes: centos, newcentos y jenkins . Cada imagen tiene los siguientes atributos: 

TAG : se utiliza para etiquetar lógicamente las imágenes.



ID de imagen : se utiliza para identificar de forma exclusiva la imagen.



Creado : el número de días desde que se creó la imagen.



Tamaño virtual : el tamaño de la imagen.

Descargando Docker Images Las imágenes se pueden descargar desde Docker Hub utilizando el comando Docker run . Veamos en detalle cómo podemos hacer esto. Sintaxis

La siguiente sintaxis se usa para ejecutar un comando en un contenedor Docker. docker run image Opciones 

Imagen : este es el nombre de la imagen que se utiliza para ejecutar el contenedor.

Valor de retorno

La salida ejecutará el comando en el contenedor deseado. Ejemplo

sudo docker run centos

Este comando descargará la imagen centos , si aún no está presente, y ejecutará el sistema operativo como un contenedor. Salida

Cuando ejecutamos el comando anterior, obtendremos el siguiente resultado:

Ahora verá la imagen de CentOS Docker descargada. Ahora, si ejecutamos el comando Docker images para ver la lista de imágenes en el sistema, también deberíamos poder ver la imagen centos .

Eliminar imágenes de Docker Las imágenes de Docker en el sistema se pueden eliminar mediante el comando docker rmi . Veamos este comando con más detalle. docker rmi

Este comando se usa para eliminar imágenes de Docker. Sintaxis docker rmi ImageID Opciones 

ImageID - Este es el ID de la imagen que debe ser eliminado.

Valor de retorno

La salida proporcionará la ID de imagen de la imagen eliminada.

Ejemplo

sudo docker rmi 7a86f8ffcb25

Aquí, 7a86f8ffcb25 es la ID de imagen de la imagen de newcentos . Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

Veamos algunos comandos más de Docker en las imágenes.

imágenes del acoplador -q Este comando se utiliza para devolver solo los ID de imagen de las imágenes. Sintaxis docker images Opciones 

q - Le dice al comando Docker que devuelva solo la ID de la imagen.

Valor de retorno

La salida mostrará solo las ID de imagen de las imágenes en el host Docker. Ejemplo

sudo docker images -q Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

docker inspeccionar Este comando se utiliza para ver los detalles de una imagen o contenedor. Sintaxis docker inspect Repository Opciones 

Repositorio : este es el nombre de la imagen.

Valor de retorno

La salida mostrará información detallada sobre la imagen. Ejemplo

sudo docker inspect jenkins Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

Docker - Contenedores Los contenedores son instancias de imágenes Docker que se pueden ejecutar con el comando Docker run. El propósito básico de Docker es ejecutar contenedores. Analicemos cómo trabajar con contenedores.

Ejecutando un contenedor La ejecución de contenedores se gestiona con el comando Docker run . Para ejecutar un contenedor en modo interactivo, primero inicie el contenedor Docker. sudo docker run –it centos /bin/bash

Luego presione Crtl + p y volverá a su shell del sistema operativo.

Luego se ejecutará en la instancia del sistema CentOS en el servidor Ubuntu.

Listado de Contenedores Uno puede enumerar todos los contenedores en la máquina a través del comando docker ps . Este comando se utiliza para devolver los contenedores actualmente en ejecución. docker ps Sintaxis docker ps Opciones

Ninguna Valor de retorno

La salida mostrará los contenedores actualmente en ejecución. Ejemplo

sudo docker ps Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

Veamos algunas variaciones más del comando docker ps .

docker ps -a Este comando se usa para enumerar todos los contenedores en el sistema Sintaxis docker ps -a

Opciones 

─a : le dice al comando docker ps que enumere todos los contenedores del sistema.

Valor de retorno

La salida mostrará todos los contenedores. Ejemplo

sudo docker ps -a Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

historia del acoplador Con este comando, puede ver todos los comandos que se ejecutaron con una imagen a través de un contenedor. Sintaxis docker history ImageID Opciones 

ImageID - Este es el ID de imagen para la que desea ver todos los comandos que se ejecutan en contra de ella.

Valor de retorno

La salida mostrará todos los comandos ejecutados contra esa imagen. Ejemplo

sudo docker history centos

El comando anterior mostrará todos los comandos que se ejecutaron contra la imagen centos .

Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

Docker - Trabajando con Contenedores En este capítulo, exploraremos en detalle qué podemos hacer con los contenedores.

estibador Con este comando, puede ver los principales procesos dentro de un contenedor. Sintaxis docker top ContainerID Opciones 

ID de contenedor : esta es la ID de contenedor para la que desea ver los principales procesos.

Valor de retorno

La salida mostrará los procesos de nivel superior dentro de un contenedor. Ejemplo

sudo docker top 9f215ed0b0d3

El comando anterior mostrará los procesos de nivel superior dentro de un contenedor. Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

parada de estibador Este comando se usa para detener un contenedor en ejecución. Sintaxis docker stop ContainerID Opciones 

ID de contenedor : esta es la ID de contenedor que debe detenerse.

Valor de retorno

La salida dará la ID del contenedor detenido. Ejemplo

sudo docker stop 9f215ed0b0d3

El comando anterior detendrá el contenedor Docker 9f215ed0b0d3 . Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

Docker rm Este comando se usa para eliminar un contenedor. Sintaxis docker rm ContainerID

Opciones 

ID de contenedor : esta es la ID de contenedor que debe eliminarse.

Valor de retorno

La salida dará la ID del contenedor eliminado. Ejemplo

sudo docker rm 9f215ed0b0d3

El comando anterior eliminará el contenedor Docker 9f215ed0b0d3 . Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

estadísticas del acoplador Este comando se utiliza para proporcionar las estadísticas de un contenedor en ejecución. Sintaxis docker stats ContainerID Opciones 

ID de contenedor : esta es la ID de contenedor para la que se deben proporcionar las estadísticas.

Valor de retorno

La salida mostrará la utilización de la CPU y la memoria del contenedor. Ejemplo

sudo docker stats 9f215ed0b0d3

El comando anterior proporcionará la utilización de CPU y memoria del Contenedor 9f215ed0b0d3 . Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

acoplador acoplable Este comando se utiliza para adjuntar a un contenedor en ejecución. Sintaxis docker attach ContainerID Opciones 

ID de contenedor : esta es la ID de contenedor a la que debe adjuntar.

Valor de retorno

Ninguna Ejemplo

sudo docker attach 07b0b6f434fe

El comando anterior se adjuntará al contenedor Docker 07b0b6f434fe . Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

Una vez que se haya conectado al contenedor Docker, puede ejecutar el comando anterior para ver la utilización del proceso en ese contenedor Docker.

pausa del acoplador Este comando se usa para pausar los procesos en un contenedor en ejecución. Sintaxis docker pause ContainerID Opciones 

ID de contenedor : esta es la ID de contenedor en la que debe pausar los procesos en el contenedor.

Valor de retorno

El ID de contenedor del contenedor en pausa. Ejemplo

sudo docker pause 07b0b6f434fe

El comando anterior pausará ejecución 07b0b6f434fe .

los

procesos

en

un

contenedor

Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

docker sin pausa

en

Este comando se usa para descomponer los procesos en un contenedor en ejecución. Sintaxis docker unpause ContainerID Opciones 

ID de contenedor : esta es la ID de contenedor en la que necesita deshacer los procesos en el contenedor.

Valor de retorno

El ID de contenedor del contenedor en ejecución. Ejemplo

sudo docker unpause 07b0b6f434fe

El comando anterior reanudará los procesos en un contenedor en ejecución: 07b0b6f434fe Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

docker kill Este comando se usa para matar los procesos en un contenedor en ejecución. Sintaxis docker kill ContainerID Opciones 

ID de contenedor : esta es la ID de contenedor a la que debe eliminar los procesos en el contenedor.

Valor de retorno

El ID de contenedor del contenedor en ejecución. Ejemplo

sudo docker kill 07b0b6f434fe

El comando anterior matará ejecución 07b0b6f434fe .

los

procesos

en

el

contenedor

Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

en

Docker - Ciclo de vida del contenedor La siguiente ilustración explica el ciclo de vida completo de un contenedor Docker.



Inicialmente, el contenedor Docker estará en el estado creado .



Luego, el contenedor Docker pasa al estado de ejecución cuando se usa el comando de ejecución Docker .



El comando Docker kill se usa para matar un contenedor Docker existente.



El comando de pausa Docker se usa para pausar un contenedor Docker existente.



El comando Docker stop se usa para pausar un contenedor Docker existente.



El comando Docker run se utiliza para devolver un estado detenido a un estado de ejecución .

un

contenedor

de

Docker - Arquitectura La siguiente imagen muestra la arquitectura estándar y tradicional de la virtualización .



El servidor es el servidor físico que se usa para alojar múltiples máquinas virtuales.



El sistema operativo host es la máquina base como Linux o Windows.



El hipervisor es VMWare o Windows Hyper V que se usa para alojar máquinas virtuales.



Luego, instalaría múltiples sistemas operativos como máquinas virtuales sobre el hipervisor existente como SO invitado.



Luego alojaría sus aplicaciones en la parte superior de cada SO invitado.

La siguiente imagen muestra la nueva generación de virtualización que se habilita a través de Dockers. Echemos un vistazo a las diversas capas.



El servidor es el servidor físico que se usa para alojar múltiples máquinas virtuales. Entonces esta capa sigue siendo la misma.



El sistema operativo host es la máquina base como Linux o Windows. Entonces esta capa sigue siendo la misma.



Ahora llega la nueva generación que es el motor Docker. Esto se utiliza para ejecutar el sistema operativo que antes eran máquinas virtuales como contenedores Docker.



Todas las aplicaciones ahora se ejecutan como contenedores Docker.

La clara ventaja de esta arquitectura es que no necesita tener hardware adicional para el SO invitado. Todo funciona como contenedores Docker.

Docker - Contenedor y Hosts Lo bueno del motor Docker es que está diseñado para funcionar en varios sistemas operativos. Ya hemos visto la instalación en Windows y todos los comandos de Docker en sistemas Linux. Ahora veamos los diversos comandos de Docker en el sistema operativo Windows.

Imágenes de Docker Ejecutemos el comando Docker images en el host de Windows.

Desde aquí, podemos ver que tenemos dos imágenes: ubuntu y hello-world .

Ejecutando un contenedor Ahora ejecutemos un contenedor en el host de Windows Docker.

Podemos ver que al ejecutar el contenedor, ahora podemos ejecutar el contenedor de Ubuntu en un host de Windows.

Listado de todos los contenedores Hagamos una lista de todos los contenedores en el host de Windows.

Parar un contenedor Detengamos ahora un contenedor en ejecución en el host de Windows.

Entonces puede ver que el motor Docker es bastante consistente cuando se trata de diferentes hosts Docker y funciona en Windows de la misma manera que funciona en Linux.

Docker - Configuración En este capítulo, veremos las diferentes opciones para configurar Docker.

servicio docker stop Este comando se usa para detener el proceso del demonio Docker . Sintaxis service docker stop Opciones

Ninguna Valor de retorno

Un mensaje que muestra que el proceso de Docker se ha detenido. Ejemplo

sudo service docker stop Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

inicio de servicio Este comando se utiliza para iniciar el proceso del demonio Docker. Sintaxis service docker start Opciones

Ninguna Valor de retorno

Un mensaje que muestra que el proceso Docker ha comenzado. Ejemplo sudo service docker start

Salida

Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

Docker - Contenedores y Conchas De manera predeterminada, cuando inicia un contenedor, también utilizará un comando de shell al iniciar el contenedor como se muestra a continuación. Esto es lo que hemos visto en los capítulos anteriores cuando trabajábamos con contenedores.

En la captura de pantalla anterior, puede observar que hemos emitido el siguiente comando: sudo docker run –it centos /bin/bash

Usamos este comando para crear un nuevo contenedor y luego usamos el comando Ctrl + P + Q para salir del contenedor. Asegura que el contenedor aún exista incluso después de que salgamos del contenedor. Podemos verificar que el contenedor aún exista con el comando Docker ps . Si tuviéramos que salir directamente del contenedor, entonces el contenedor mismo sería destruido. Ahora hay una manera más fácil de unirlos a los contenedores y salir de ellos limpiamente sin la necesidad de destruirlos. Una forma de lograr esto es mediante el uso del comando nsenter . Antes de ejecutar el comando nsenter , primero debe la imagen nsenter . Se puede hacer mediante el siguiente comando:

instalar

docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter

Antes de usar el comando nsenter , necesitamos obtener la ID del proceso del contenedor, porque esto es requerido por el comando nsenter . Podemos obtener la ID del proceso a través del comando de inspección de Docker y filtrarla a través del Pid .

Como se ve en la captura de pantalla anterior, primero usamos el comando docker ps para ver los contenedores en ejecución. Podemos ver que hay un contenedor en ejecución con el ID de ef42a4c5e663. Luego usamos el comando de inspección de Docker para inspeccionar la configuración de este contenedor y luego usamos el comando grep para filtrar la ID del proceso. Y a partir de la salida, podemos ver que la ID del proceso es 2978. Ahora que tenemos la ID del proceso, podemos avanzar y usar el comando nsenter para adjuntarlo al contenedor Docker.

nsenter Este método permite conectar uno a un contenedor sin salir del contenedor. Sintaxis

Comando nsenter –m –u –n –p –i –t containerID

Opciones 

-u se usa para mencionar el espacio de nombres Uts



-m se usa para mencionar el espacio de nombres de montaje



-n se usa para mencionar el espacio de nombres de la red



-p se usa para mencionar el espacio de nombres del proceso



-i s para hacer que el contenedor se ejecute en modo interactivo.



-t se usa para conectar las secuencias de E / S del contenedor al sistema operativo host.



containerID : esta es la ID del contenedor.



Comando : este es el comando para ejecutar dentro del contenedor.

Valor de retorno

Ninguna Ejemplo

sudo nsenter –m –u –n –p –i –t 2978 /bin/bash Salida

Desde la salida, podemos observar los siguientes puntos: 

La solicitud cambia el comando nsenter .



Luego emitimos el comando de salida . Ahora, normalmente, si no utilizó el comando nsenter , el contenedor se destruiría. Pero notará que cuando ejecutamos el comando nsenter , el contenedor todavía está en funcionamiento.

al shell

bash directamente

cuando emitimos

Docker - Archivo En los capítulos anteriores, hemos visto varios archivos de imagen, como Centos, que se descargan del Docker Hub desde el que puede girar contenedores. Un ejemplo se muestra nuevamente a continuación.

Si usamos el comando Docker images , podemos ver las imágenes existentes en nuestro sistema. De la captura de pantalla anterior, podemos ver que hay dos imágenes: centos y nsenter . Pero Docker también le brinda la capacidad de crear sus propias imágenes de Docker, y se puede hacer con la ayuda de Docker Files . Un archivo Docker es un archivo de texto simple con instrucciones sobre cómo construir sus imágenes. Los siguientes pasos explican cómo debe crear un archivo Docker. Paso 1 : crea un archivo llamado Docker File y edítalo usando vim . Tenga en cuenta que el nombre del archivo debe ser "Dockerfile" con "D" como mayúscula.

Paso 2 : crea tu archivo Docker usando las siguientes instrucciones. #This is a sample Image FROM ubuntu MAINTAINER [email protected] RUN apt-get update RUN apt-get install –y nginx CMD [“echo”,”Image created”]

Deben tenerse en cuenta los siguientes puntos sobre el archivo anterior: 

La primera línea "#Esta es una imagen de muestra" es un comentario. Puede agregar comentarios al archivo Docker con la ayuda del comando #



La siguiente línea tiene que comenzar con la palabra clave FROM . Le dice a Docker, desde qué imagen base desea basar su imagen. En nuestro ejemplo, estamos creando una imagen a partir de la imagen de ubuntu .



El siguiente comando es la persona que va a mantener esta imagen. Aquí especifica la palabra clave MAINTAINER y solo menciona la ID de correo electrónico.



El comando EJECUTAR se utiliza para ejecutar instrucciones contra la imagen. En nuestro caso, primero actualizamos nuestro sistema Ubuntu y luego instalamos el servidor nginx en nuestra imagen de ubuntu .



El último comando se usa para mostrar un mensaje al usuario.

Paso 3 : guarda el archivo. En el próximo capítulo, discutiremos cómo construir la imagen.

Docker - Archivos de construcción Creamos nuestro archivo Docker en el último capítulo. Ahora es el momento de construir el archivo Docker. El archivo Docker se puede construir con el siguiente comando: docker build

Aprendamos más sobre este comando.

Docker Build Este método permite a los usuarios crear sus propias imágenes de Docker. Sintaxis docker build

-t ImageName:TagName dir

Opciones 

-t - es mencionar una etiqueta a la imagen



ImageName : este es el nombre que desea dar a su imagen.



TagName : esta es la etiqueta que desea darle a su imagen.



Dir : el directorio donde está presente el archivo Docker.

Valor de retorno

Ninguna Ejemplo

sudo docker build –t myimage:0.1.

Aquí, myimage es el nombre que le estamos dando a la Imagen y 0.1 es el número de etiqueta que le estamos dando a nuestra imagen. Como el archivo Docker está en el directorio de trabajo actual, utilizamos "." al final del comando para indicar el directorio de trabajo actual. Salida

En la salida, primero verá que la imagen de Ubuntu se descargará de Docker Hub, porque no hay una imagen disponible localmente en la máquina.

Finalmente, cuando se completa la compilación, todos los comandos necesarios se habrían ejecutado en la imagen.

Luego verá el mensaje creado con éxito y la ID de la nueva imagen. Cuando ejecutas el comando Docker images , podrás ver tu nueva imagen.

Ahora puede crear contenedores a partir de su nueva imagen.

Docker - Repositorios públicos Los repositorios públicos se pueden usar para alojar imágenes de Docker que pueden ser utilizadas por todos los demás. Un ejemplo son las imágenes que están disponibles en Docker Hub. La mayoría de las imágenes como Centos, Ubuntu y Jenkins están disponibles públicamente para todos. También podemos hacer que nuestras imágenes estén disponibles al publicarlas en el repositorio público en Docker Hub. Para nuestro ejemplo, utilizaremos el repositorio de myimage integrado en el capítulo "Creación de archivos Docker" y subiremos esa imagen a Docker Hub. Primero revisemos las imágenes en nuestro host Docker para ver qué podemos enviar al registro de Docker.

Aquí tenemos nuestra imagen myimage: 0.1, que se creó como parte del capítulo "Creación de archivos Docker". Usemos esto para subir al repositorio público de Docker. Los siguientes pasos explican cómo puede cargar una imagen en un repositorio público. Paso 1 : inicie sesión en Docker Hub y cree su repositorio. Este es el repositorio donde se almacenará su imagen. Vaya a https://hub.docker.com/ e inicie sesión con sus credenciales.

Paso 2 - Haz clic en el botón "Crear repositorio" en la pantalla anterior y crea un repositorio con el nombre demorep . Asegúrese de que la visibilidad del repositorio sea pública.

Una vez que se crea el repositorio, tome nota del comando de extracción que se adjunta al repositorio.

El comando de extracción que se utilizará en nuestro repositorio es el siguiente: docker pull demousr/demorep

Paso 3 : ahora vuelve al Docker Host. Aquí necesitamos etiquetar nuestra imagen en el nuevo repositorio creado en Docker Hub. Podemos hacer esto a través del comando de etiqueta Docker . Aprenderemos más sobre este comando de etiqueta más adelante en este capítulo. Paso 4 : emita el comando de inicio de sesión de Docker para iniciar sesión en el repositorio de Docker Hub desde el símbolo del sistema. El comando de inicio de sesión de Docker le pedirá el nombre de usuario y la contraseña del repositorio de Docker Hub.

Paso 5 : una vez que la imagen ha sido etiquetada, es hora de enviarla al repositorio de Docker Hub. Podemos hacer esto a través del comando push Docker . Aprenderemos más sobre este comando más adelante en este capítulo.

etiqueta acoplable

Este método permite etiquetar una imagen en el repositorio relevante. Sintaxis docker tag imageID Repositoryname Opciones 

ID de imagen : este es el ID de imagen que debe etiquetarse en el repositorio.



RepositoryName - Este es el nombre del repositorio a la que necesita ser etiquetado con el ImageID.

Valor de retorno

Ninguna Ejemplo

sudo docker tag ab0c1d3744dd demousr/demorep:1.0 Salida

A continuación se muestra una salida de muestra del ejemplo anterior.

empuje de estibador Este método permite enviar imágenes al Docker Hub. Sintaxis docker push Repositoryname Opciones 

RepositoryName - Este es el nombre del repositorio que necesita ser empujado hasta el Hub del estibador.

Valor de retorno

La ID larga del repositorio se envió a Docker Hub. Ejemplo

sudo docker push demousr/demorep:1.0

Salida

Si vuelve a la página de Docker Hub y va a su repositorio, verá el nombre de la etiqueta en el repositorio.

Ahora intentemos extraer el repositorio que cargamos en nuestro host Docker. Primero eliminemos las imágenes, myimage: 0.1 y demousr / demorep: 1.0 , del host Docker local. Usemos el comando de extracción de Docker para extraer el repositorio del Docker Hub.

En la captura de pantalla anterior, puede ver que el comando de extracción de Docker ha tomado nuestro nuevo repositorio del Docker Hub y lo ha colocado en nuestra máquina.

Docker - Gestión de puertos En Docker, los propios contenedores pueden tener aplicaciones ejecutándose en puertos. Cuando ejecuta un contenedor, si desea acceder a la aplicación en el contenedor a través de un número de puerto, debe asignar el número de puerto del contenedor al número de puerto del host Docker. Veamos un ejemplo de cómo se puede lograr esto. En nuestro ejemplo, vamos a descargar el contenedor Jenkins de Docker Hub. Luego, asignaremos el número de puerto de Jenkins al número de puerto en el host Docker. Paso 1 : Primero, debes hacer un registro simple en Docker Hub.

Paso 2 : una vez que te hayas registrado, iniciarás sesión en Docker Hub.

Paso 3 - A continuación, vamos a buscar y encontrar la imagen de Jenkins.

Paso 4 : si te desplazas hacia abajo en la misma página, puedes ver el comando de extracción de Docker . Esto se usará para descargar la imagen de Jenkins en el servidor local de Ubuntu.

Paso 5 - Ahora ve al servidor Ubuntu y ejecuta el comando sudo docker pull jenkins

Paso 6 : para comprender qué puertos está expuesto por el contenedor, debe usar el comando de inspección de Docker para inspeccionar la imagen. Ahora aprendamos más sobre este comando de inspección .

docker inspeccionar Este método le permite a uno devolver información de bajo nivel sobre el contenedor o la imagen. Sintaxis docker inspect Container/Image Opciones 

Contenedor / Imagen : el contenedor o imagen a inspeccionar

Valor de retorno

La información de bajo nivel de la imagen o contenedor en formato JSON. Ejemplo

sudo docker inspect jenkins

Salida

La salida del comando inspeccionar da una salida JSON. Si observamos el resultado, podemos ver que hay una sección de "Puertos expuestos" y ver que hay dos puertos mencionados. Uno es el puerto de datos de 8080 y el otro es el puerto de control de 50000. Para ejecutar Jenkins y asignar los puertos, debe cambiar el comando de ejecución de Docker y agregar la opción 'p' que especifica la asignación de puertos. Por lo tanto, debe ejecutar el siguiente comando: sudo docker run -p 8080:8080 -p 50000:50000 jenkins

El lado izquierdo de la asignación de número de puerto es el puerto host de Docker para asignar y el lado derecho es el número de puerto del contenedor Docker. Cuando abra el navegador y navegue al host Docker en el puerto 8080, verá a Jenkins en funcionamiento.

Docker - Registros privados Es posible que tenga la necesidad de tener sus propios repositorios privados. Es posible que no desee alojar los repositorios en Docker Hub. Para esto, hay un contenedor de repositorio de Docker. Veamos cómo podemos descargar y usar el contenedor para el registro. Paso 1 : use el comando Docker run para descargar el registro privado. Esto se puede hacer usando el siguiente comando. sudo docker run –d –p 5000:5000 –-name registry registry:2

Deben tenerse en cuenta los siguientes puntos sobre el comando anterior: 

Registry es el contenedor administrado por Docker que se puede usar para alojar repositorios privados.



El número de puerto expuesto por el contenedor es 5000. Por lo tanto, con el comando –p , estamos asignando el mismo número de puerto al número de puerto 5000 en nuestro host local.



Solo estamos etiquetando el contenedor de registro como "2", para diferenciarlo en el host Docker.



La opción –d se usa para ejecutar el contenedor en modo separado. Esto es para que el contenedor pueda ejecutarse en segundo plano

Paso 2 : hagamos un docker ps para ver si el contenedor de registro se está ejecutando.

Ahora hemos confirmado que el contenedor de registro se está ejecutando. Paso 3 : ahora etiquetemos una de nuestras imágenes existentes para poder enviarla a nuestro repositorio local. En nuestro ejemplo, dado que tenemos la imagen de centos disponible localmente, la etiquetaremos en nuestro repositorio privado y agregaremos un nombre de etiqueta de centos . sudo docker tag 67591570dd29 localhost:5000/centos

Deben tenerse en cuenta los siguientes puntos sobre el comando anterior: 

67591570dd29 se refiere a la ID de imagen para la imagen centos .



localhost: 5000 es la ubicación de nuestro repositorio privado.



Estamos etiquetando el nombre del repositorio como centos en nuestro repositorio privado.

Paso 4 : ahora usemos el comando push de Docker para enviar el repositorio a nuestro repositorio privado. sudo docker push localhost:5000/centos

Aquí, estamos enviando la imagen de centos al repositorio privado alojado en localhost: 5000 .

Paso 5 - Ahora borremos las imágenes locales que tenemos para centos usando los comandos docker rmi . Luego podemos descargar la imagen de centos requerida desde nuestro repositorio privado. sudo docker rmi centos:latest sudo docker rmi 67591570dd29

Paso 6 : ahora que no tenemos imágenes de centos en nuestra máquina local, ahora podemos usar el siguiente comando de extracción de Docker para extraer la imagen de centos de nuestro repositorio privado. sudo docker pull localhost:5000/centos

Aquí, estamos llevando la imagen de centos al repositorio privado alojado en localhost: 5000 .

Si ahora ve las imágenes en su sistema, también verá la imagen centos .

Docker: creación de un archivo Docker de servidor web

Ya hemos aprendido cómo usar Docker File para construir nuestras propias imágenes personalizadas. Ahora veamos cómo podemos construir una imagen de servidor web que pueda usarse para construir contenedores. En nuestro ejemplo, vamos a usar el servidor web Apache en Ubuntu para construir nuestra imagen. Sigamos los pasos que se detallan a continuación para crear nuestro archivo Docker del servidor web. Paso 1 : el primer paso es crear nuestro archivo Docker. Vamos a usar vim y crear un archivo acoplable con la siguiente información. FROM ubuntu RUN apt-get update RUN apt-get install –y apache2 RUN apt-get install –y apache2-utils RUN apt-get clean EXPOSE 80 CMD [“apache2ctl”, “-D”, “FOREGROUND”]

Los siguientes puntos deben tenerse en cuenta sobre las declaraciones anteriores: 

Primero estamos creando nuestra imagen para que sea de la imagen base de Ubuntu.



A continuación, vamos a utilizar el comando EJECUTAR para actualizar todos los paquetes en el sistema Ubuntu.



A continuación, usamos el comando EJECUTAR para instalar apache2 en nuestra imagen.



A continuación, usamos el comando EJECUTAR para instalar los paquetes de utilidad apache2 necesarios en nuestra imagen.



A continuación, usamos el comando EJECUTAR para limpiar cualquier archivo innecesario del sistema.



El comando EXPOSE se usa para exponer el puerto 80 de Apache en el contenedor al host Docker.



Finalmente, el comando CMD se usa para ejecutar apache2 en segundo plano.

Ahora que se han ingresado los detalles del archivo, simplemente guarde el archivo. Paso 2 : ejecuta el comando Docker build para compilar el archivo Docker. Se puede hacer usando el siguiente comando: sudo docker build –t=”mywebserver” .

Estamos etiquetando nuestra imagen como mywebserver . Una vez que se crea la imagen, recibirá un mensaje exitoso de que el archivo se ha creado.

Paso 3 : ahora que se ha creado el archivo del servidor web, es hora de crear un contenedor a partir de la imagen. Podemos hacer esto con el comando Docker run . sudo docker run –d –p 80:80 mywebserver

Deben tenerse en cuenta los siguientes puntos sobre el comando anterior: 

El número de puerto expuesto por el contenedor es 80. Por lo tanto, con el comando –p , estamos asignando el mismo número de puerto al número de puerto 80 en nuestro host local.



La opción –d se usa para ejecutar el contenedor en modo separado. Esto es para que el contenedor pueda ejecutarse en segundo plano.

Si va al puerto 80 del host Docker en su navegador web, verá que Apache está en funcionamiento.

Docker - Comandos de instrucciones Docker tiene una gran cantidad de comandos de instrucciones. Estos son comandos que se colocan en el archivo Docker. Veamos los que están disponibles.

Instrucción CMD Este comando se usa para ejecutar un comando en tiempo de ejecución cuando se ejecuta el contenedor. Sintaxis CMD command param1 Opciones 

comando : este es el comando que se debe ejecutar cuando se inicia el contenedor.



param1 : este es el parámetro ingresado al comando.

Valor de retorno

El comando se ejecutará en consecuencia.

Ejemplo

En nuestro ejemplo, ingresaremos un simple eco de Hello World en nuestro archivo Docker y crearemos una imagen y lanzaremos un contenedor desde él. Paso 1 : compila el archivo Docker con los siguientes comandos: FROM ubuntu MAINTAINER [email protected] CMD [“echo” , “hello world”]

Aquí, el CMD solo se usa para imprimir hola mundo .

Paso 2 : compila la imagen con el comando Docker build .

Paso 3 : ejecuta un contenedor desde la imagen.

PUNTO DE ENTRADA Este comando también se puede usar para ejecutar comandos en tiempo de ejecución para el contenedor. Pero podemos ser más flexibles con el comando ENTRYPOINT. Sintaxis ENTRYPOINT command param1 Opciones 

comando : este es el comando que se debe ejecutar cuando se inicia el contenedor.



param1 : este es el parámetro introducido en el comando.

Valor de retorno

El comando se ejecutará en consecuencia. Ejemplo

Echemos un vistazo a un ejemplo para comprender más sobre ENTRYPOINT. En nuestro ejemplo, ingresaremos un comando de eco simple en nuestro archivo Docker y crearemos una imagen e iniciaremos un contenedor desde él. Paso 1 : compila el archivo Docker con los siguientes comandos: FROM ubuntu MAINTAINER [email protected] ENTRYPOINT [“echo”]

Paso 2 : compila la imagen con el comando Docker build .

Paso 3 : ejecuta un contenedor desde la imagen.

ENV Este comando se usa para establecer variables de entorno en el contenedor. Sintaxis ENV key value Opciones 

Clave : esta es la clave para la variable de entorno.



valor : este es el valor de la variable de entorno.

Valor de retorno

El comando se ejecutará en consecuencia. Ejemplo

En nuestro ejemplo, ingresaremos un comando de eco simple en nuestro archivo Docker y crearemos una imagen e iniciaremos un contenedor desde él. Paso 1 : compila el archivo Docker con los siguientes comandos: FROM ubuntu MAINTAINER [email protected] ENV var1=Tutorial var2=point

Paso 2 : compila la imagen con el comando Docker build .

Paso 3 : ejecuta un contenedor desde la imagen.

Paso 4 : finalmente, ejecute el comando env para ver las variables de entorno.

WORKDIR Este comando se usa para establecer el directorio de trabajo del contenedor. Sintaxis WORKDIR dirname Opciones 

dirname : el nuevo directorio de trabajo. Si el directorio no existe, se agregará.

Valor de retorno

El comando se ejecutará en consecuencia.

Ejemplo

En nuestro ejemplo, ingresaremos un comando de eco simple en nuestro archivo Docker y crearemos una imagen e iniciaremos un contenedor desde él. Paso 1 : compila el archivo Docker con los siguientes comandos: FROM ubuntu MAINTAINER [email protected] WORKDIR /newtemp CMD pwd

Paso 2 : compila la imagen con el comando Docker build .

Paso 3 : ejecuta un contenedor desde la imagen.

Docker - Vinculación de contenedores La vinculación de contenedores permite que varios contenedores se vinculen entre sí. Es una mejor opción que exponer puertos. Vayamos paso a paso y aprendamos cómo funciona. Paso 1 : descargue la imagen de Jenkins, si aún no está presente, utilizando el comando de extracción Jenkins .

Paso 2 : una vez que la imagen esté disponible, ejecute el contenedor, pero esta vez, puede especificar un nombre para el contenedor utilizando la opción –-name . Este será nuestro contenedor fuente .

Paso 3 : a continuación, es hora de iniciar el contenedor de destino, pero esta vez lo vincularemos con nuestro contenedor de origen. Para nuestro contenedor de destino, utilizaremos la imagen estándar de Ubuntu.

Cuando haces un docker ps , verás que ambos contenedores se están ejecutando. Paso 4 : ahora, conéctelo al contenedor receptor.

Luego ejecute el comando env . Notará nuevas variables para vincular con el contenedor de origen.

Docker - Almacenamiento Controladores de almacenamiento

Docker tiene múltiples controladores de almacenamiento que permiten trabajar con los dispositivos de almacenamiento subyacentes. La siguiente tabla muestra los diferentes controladores de almacenamiento junto con la tecnología utilizada para los controladores de almacenamiento. Tecnología

Controlador de almacenamiento

OverlayFS

superposición o superposición2

AUFS

aufs

Btrfs

brtfs

Administrador de dispositivos

administrador de dispositivos

VFS

vfs

ZFS

zfs

Analicemos ahora algunas de las instancias en las que usaría los diversos controladores de almacenamiento: AUFS 

Este es un controlador estable; puede usarse para aplicaciones listas para producción.



Tiene un buen uso de memoria y es bueno para garantizar una experiencia fluida de Docker para contenedores.



Hay una actividad de escritura alta asociada con este controlador que debe considerarse.



Es bueno para los sistemas que son de plataforma como un tipo de servicio de trabajo.

Devicemapper 

Este es un controlador estable; garantiza una experiencia fluida en Docker.



Este controlador es bueno para probar aplicaciones en el laboratorio.



Este controlador está en línea con la funcionalidad principal del kernel de Linux.

Btrfs 

Este controlador está en línea con la funcionalidad principal del kernel de Linux.



Hay una actividad de escritura alta asociada con este controlador que debe considerarse.



Este controlador es bueno para casos en los que mantiene varios grupos de compilación.

Ovelay 

Este es un controlador estable y está en línea con la funcionalidad principal del kernel de Linux.



Tiene un buen uso de memoria.



Este controlador es bueno para probar aplicaciones en el laboratorio.

ZFS 

Este es un controlador estable y es bueno para probar aplicaciones en el laboratorio.



Es bueno para sistemas que son de tipo Plataforma como servicio.

Para ver el controlador de almacenamiento que se está utilizando, emita el comando docker info . Sintaxis docker info Opciones

Ninguna Valor de retorno

El comando proporcionará toda la información relativa sobre el componente Docker instalado en el Docker Host. Ejemplo

sudo docker info Salida

El siguiente resultado muestra que el controlador principal utilizado es el controlador aufs y que el directorio raíz se almacena en / var / lib / docker / aufs .

Volúmenes de datos

En Docker, tiene un volumen separado que se puede compartir entre contenedores. Estos se conocen como volúmenes de datos . Algunas de las características del volumen de datos son: 

Se inicializan cuando se crea el contenedor.



Se pueden compartir y también reutilizar entre muchos contenedores.



Cualquier cambio en el volumen en sí se puede hacer directamente.



Existen incluso después de eliminar el contenedor.

Echemos un vistazo a nuestro contenedor Jenkins. Hagamos una inspección de la ventana acoplable para ver los detalles de esta imagen. Podemos emitir el siguiente comando para escribir la salida del comando de inspección docker en un archivo de texto y luego ver el archivo en consecuencia. sudo docker inspect Jenkins > tmp.txt

Cuando vea el archivo de texto con el comando more , verá una entrada como JENKINS_HOME = / var / Jenkins_home . Esta es la asignación que se realiza dentro del contenedor a través de la imagen de Jenkins.

Ahora suponga que desea asignar el volumen en el contenedor a un volumen local, luego debe especificar la opción –v al iniciar el contenedor. A continuación se muestra un ejemplo: sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

La opción –v se usa para asignar el volumen en el contenedor que es / var / jenkins_home a una ubicación en nuestro Docker Host que es / home / demo .

Ahora, si va a la ubicación / home / demo en su Docker Host después de iniciar su contenedor, verá todos los archivos de contenedor presentes allí.

Cambio del controlador de almacenamiento para un contenedor Si desea cambiar al controlador de almacenamiento utilizado para un contenedor, puede hacerlo al iniciar el contenedor. Esto se puede hacer usando el parámetro –volume-driver cuando se usa el comando docker run . A continuación se da un ejemplo: sudo docker run –d –volume-driver=flocker –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

La opción –volume-driver se usa para especificar otro controlador de almacenamiento para el contenedor.

Para confirmar que se ha cambiado el controlador, primero usemos el comando docker ps para ver los contenedores en ejecución y obtener la ID del contenedor. Entonces, emita el siguiente comando primero: sudo docker ps

Luego, emita una ventana acoplable para inspeccionar el contenedor y coloque la salida en un archivo de texto con el comando. sudo docker inspect 9bffb1bfebee > temp.txt

Si navega por el archivo de texto y va a la línea que dice VolumeDriver , verá que se ha cambiado el nombre del controlador.

Crear un volumen Se puede crear un volumen de antemano el comando docker . Aprendamos más sobre este comando. Sintaxis docker volume create –-name=volumename –-opt options Opciones 

nombre : este es el nombre del volumen que debe crearse.



opt : estas son opciones que puede proporcionar al crear el volumen.

utilizando

Valor de retorno

El comando mostrará el nombre del volumen creado. Ejemplo

sudo docker volume create –-name = demo –opt o = size = 100m

En el comando anterior, estamos creando un volumen de tamaño de 100 MB y con un nombre de demostración. Salida

La salida del comando anterior se muestra a continuación:

Listado de todos los volúmenes También puede enumerar todos los volúmenes de docker en un host de docker . Más detalles sobre este comando se dan a continuación: Sintaxis docker volume ls Opciones

Ninguna Valor de retorno

El comando generará todos los volúmenes en el host docker . Ejemplo

sudo docker volume ls Salida

La salida del comando anterior se muestra a continuación:

Docker - Redes Docker se ocupa de los aspectos de red para que los contenedores puedan comunicarse con otros contenedores y también con el Docker Host. Si realiza una configuración if en el Docker Host, verá el adaptador Docker Ethernet. Este adaptador se crea cuando Docker se instala en el Docker Host.

Este es un puente entre el Docker Host y el Linux Host. Ahora veamos algunos comandos asociados con las redes en Docker.

Listado de todas las redes de Docker Este comando se puede usar para enumerar todas las redes asociadas con Docker en el host. Sintaxis docker network ls Opciones

Ninguna Valor de retorno

El comando generará todas las redes en el Docker Host. Ejemplo

sudo docker network ls Salida

La salida del comando anterior se muestra a continuación

Inspeccionar una red Docker Si desea ver más detalles sobre la red asociada con Docker, puede usar el comando de inspección de red de Docker . Sintaxis docker network inspect networkname Opciones 

NetworkName - Este es el nombre de la red que necesita para inspeccionar.

Valor de retorno

El comando generará todos los detalles sobre la red. Ejemplo

sudo docker network inspect bridge Salida

La salida del comando anterior se muestra a continuación:

Ahora ejecutemos un contenedor y veamos qué sucede cuando inspeccionamos la red nuevamente. Hagamos girar un contenedor de Ubuntu con el siguiente comando: sudo docker run –it ubuntu:latest /bin/bash

Ahora, si inspeccionamos el nombre de nuestra red mediante el siguiente comando, verá que el contenedor está conectado al puente. sudo docker network inspect bridge

Creando tu propia red nueva Uno puede crear una red en Docker antes de lanzar contenedores. Esto se puede hacer con el siguiente comando: Sintaxis docker network create –-driver drivername name Opciones 

nombre del controlador : este es el nombre utilizado para el controlador de red.



nombre : este es el nombre dado a la red.

Valor de retorno

El comando generará la ID larga para la nueva red. Ejemplo

sudo docker network create –-driver bridge new_nw Salida

La salida del comando anterior se muestra a continuación:

Ahora puede adjuntar la nueva red al iniciar el contenedor. Entonces, hagamos girar un contenedor de Ubuntu con el siguiente comando: sudo docker run –it –network=new_nw ubuntu:latest /bin/bash

Y ahora, cuando inspeccione la red mediante el siguiente comando, verá el contenedor conectado a la red. sudo docker network inspect new_nw

Docker: configuración de Node.js Node.js es un marco de JavaScript que se utiliza para desarrollar aplicaciones del lado del servidor. Es un marco de código abierto que está desarrollado para ejecutarse en una variedad de sistemas operativos. Dado que Node.js es un marco popular para el desarrollo, Docker también se ha asegurado de que sea compatible con las aplicaciones de Node.js.

Ahora veremos los diversos pasos para obtener el contenedor Docker para Node.js en funcionamiento. Paso 1 : el primer paso es extraer la imagen de Docker Hub. Cuando inicie sesión en Docker Hub, podrá buscar y ver la imagen de Node.js como se muestra a continuación. Simplemente escriba Nodo en el cuadro de búsqueda y haga clic en el enlace de nodo (oficial) que aparece en los resultados de búsqueda.

Paso 2 : verá que el comando de extracción de Docker para el nodo en los detalles del repositorio en Docker Hub.

Paso 3 : en el Docker Host, use el comando de extracción Docker como se muestra arriba para descargar la última imagen de nodo de Docker Hub.

Una vez que se completa la extracción , podemos continuar con el siguiente paso.

Paso 4 : en el Docker Host, usemos el editor vim y creemos un archivo de ejemplo Node.js. En este archivo, agregaremos un comando simple para mostrar "HelloWorld" al símbolo del sistema.

En el archivo Node.js, agreguemos la siguiente declaración: Console.log(„Hello World‟);

Esto generará la frase "Hola mundo" cuando la ejecutemos a través de Node.js.

Asegúrese de guardar el archivo y luego continúe con el siguiente paso. Paso 5 : para ejecutar nuestro script Node.js utilizando el contenedor Node Docker, debemos ejecutar la siguiente instrucción: sudo docker run –it –rm –name = HelloWorld –v “$PWD”:/usr/src/app –w /usr/src/app node node HelloWorld.js

Deben tenerse en cuenta los siguientes puntos sobre el comando anterior: 

La opción –rm se usa para eliminar el contenedor después de ejecutarlo.



Estamos dando un nombre al contenedor llamado "HelloWorld".



Estamos mencionando asignar el volumen en el contenedor que es / usr / src / app a nuestro actual directorio de trabajo actual. Esto se hace para que el contenedor de nodos recoja nuestro script HelloWorld.js que está presente en nuestro directorio de trabajo en el Docker Host.



La opción –w se usa para especificar el directorio de trabajo utilizado por Node.js.



La primera opción de nodo se usa para especificar ejecutar la imagen del nodo.



La segunda opción de nodo se usa para mencionar ejecutar el comando de nodo en el contenedor de nodo.



Y finalmente mencionamos el nombre de nuestro guión.

Entonces obtendremos el siguiente resultado. Y a partir de la salida, podemos ver claramente que el contenedor Node se ejecutó como un contenedor y ejecutó el script HelloWorld.js.

Docker - Configuración de MongoDB MongoDB es una famosa base de datos orientada a documentos que es utilizada por muchas aplicaciones web modernas. Dado que MongoDB es una

base de datos popular para el desarrollo, Docker también se ha asegurado de que sea compatible con MongoDB. Ahora veremos los distintos pasos para poner en funcionamiento el contenedor Docker para MongoDB. Paso 1 : el primer paso es extraer la imagen de Docker Hub. Cuando inicie sesión en Docker Hub, podrá buscar y ver la imagen de Mongo como se muestra a continuación. Simplemente escriba Mongo en el cuadro de búsqueda y haga clic en el enlace Mongo (oficial) que aparece en los resultados de búsqueda.

Paso 2 : verá el comando de extracción de Docker para Mongo en los detalles del repositorio en Docker Hub.

Paso 3 : en el Docker Host, use el comando de extracción de Docker como se muestra arriba para descargar la última imagen de Mongo desde Docker Hub.

Paso 4 : ahora que tenemos la imagen para Mongo, primero ejecutemos un contenedor MongoDB, que será nuestra instancia para MongoDB. Para esto, emitiremos el siguiente comando: sudo docker run -it -d mongo

Los siguientes puntos se pueden observar sobre el comando anterior: 

La opción –it se usa para ejecutar el contenedor en modo interactivo.



La opción –d se usa para ejecutar el contenedor como un proceso de daemon.



Y finalmente estamos creando un contenedor a partir de la imagen de Mongo.

Luego puede emitir el comando docker ps para ver los contenedores en ejecución:

Tome nota de los siguientes puntos: 

El nombre del contenedor es tender_poitras . Este nombre será diferente ya que el nombre de los contenedores sigue cambiando cuando gira un contenedor. Pero solo tome nota del contenedor que ha lanzado.



A continuación, observe también el número de puerto en el que se está ejecutando. Está escuchando en el puerto TCP de 27017.

Paso 5 : ahora hagamos girar otro contenedor que actuará como nuestro cliente que se usará para conectarse a la base de datos MongoDB. Emitamos el siguiente comando para esto: sudo docker run –it –link=tender_poitras:mongo mongo /bin/bash

Los siguientes puntos se pueden observar sobre el comando anterior: 

La opción –it se usa para ejecutar el contenedor en modo interactivo.



Ahora estamos vinculando nuestro nuevo contenedor al contenedor del servidor MongoDB ya lanzado. Aquí, debe mencionar el nombre del contenedor ya lanzado.



Luego estamos especificando que queremos lanzar el contenedor Mongo como nuestro cliente y luego ejecutar el shell bin / bash en nuestro nuevo contenedor.

Ahora estará en el nuevo contenedor. Paso 6 : ejecute el comando env en el nuevo contenedor para ver los detalles de cómo conectarse al contenedor del servidor MongoDB.

Paso 6 : ahora es el momento de conectarse al servidor MongoDB desde el contenedor del cliente. Podemos hacer esto a través del siguiente comando: mongo 172.17.0.2:27017

Los siguientes puntos deben tenerse en cuenta sobre el comando anterior 

El comando mongo es el comando cliente mongo que se utiliza para conectarse a una base de datos MongoDB.



La IP y el número de puerto es lo que obtienes cuando usas el comando env .

Una vez que ejecute el comando, se conectará a la base de datos MongoDB.

Luego puede ejecutar cualquier comando MongoDB en el símbolo del sistema. En nuestro ejemplo, estamos ejecutando el siguiente comando: use demo

Este comando es un comando MongoDB que se utiliza para cambiar a una demostración de nombre de base de datos . Si la base de datos no está disponible, se creará.

Ahora ha creado con éxito un contenedor MongoDB de cliente y servidor.

Docker - Configuración de NGINX NGINX es una aplicación web ligera y popular que se utiliza para desarrollar aplicaciones del lado del servidor. Es un servidor web de código abierto que está desarrollado para ejecutarse en una variedad de sistemas operativos. Dado que nginx es un servidor web popular para el desarrollo, Docker se ha asegurado de que sea compatible con nginx . Ahora veremos los diversos pasos para obtener el contenedor Docker para nginx en funcionamiento. Paso 1 : el primer paso es extraer la imagen de Docker Hub. Cuando inicie sesión en Docker Hub, podrá buscar y ver la imagen de nginx como se muestra a continuación. Simplemente escriba nginx en el cuadro de búsqueda y haga clic en el enlace nginx (oficial) que aparece en los resultados de búsqueda.

Paso 2 : verá que el comando de extracción de Docker para nginx en los detalles del repositorio en Docker Hub.

Paso 3 : en el Docker Host, use el comando de extracción Docker como se muestra arriba para descargar la última imagen nginx de Docker Hub.

Paso 4 : ahora ejecutemos el contenedor nginx con el siguiente comando. sudo docker run –p 8080:80 –d nginx

Estamos exponiendo el puerto en el servidor nginx que es el puerto 80 al puerto 8080 en el Docker Host.

Una vez que ejecute el comando, obtendrá el siguiente resultado si navega a la URL http: // dockerhost: 8080 . Esto muestra que el contenedor nginx está en funcionamiento.

Paso 5 : veamos otro ejemplo en el que podemos alojar una página web simple en nuestro contenedor ngnix . En nuestro ejemplo, crearemos un archivo HelloWorld.html simple y lo alojaremos en nuestro contenedor nginx . Primero creemos un archivo HTML llamado HelloWorld.html

Agreguemos una línea simple de Hello World en el archivo HTML.

Entonces ejecutemos el siguiente comando Docker. sudo docker run –p 8080:80 –v “$PWD”:/usr/share/nginx/html:ro –d nginx

Deben tenerse en cuenta los siguientes puntos sobre el comando anterior: 

Estamos exponiendo el puerto en el servidor nginx que es el puerto 80 al puerto 8080 en el Docker Host.



A continuación, adjuntamos el volumen en el contenedor que es / usr / share / nginx / html a nuestro directorio de trabajo actual. Aquí es donde se almacena nuestro archivo HelloWorld.html.

Ahora, si navegamos a la URL http: // dockerhost: 8080 HelloWorld.html obtendremos el siguiente resultado como se esperaba:

/

Docker - Caja de herramientas En los capítulos introductorios, hemos visto la instalación de Docker toolbox en Windows. La caja de herramientas de Docker está desarrollada para que los

contenedores de Docker se puedan ejecutar en Windows y MacOS. El sitio para toolbox en Windows es https://docs.docker.com/docker-for-windows/

Para Windows, debe tener Windows 10 o Windows Server 2016 con Hyper-V habilitado. La caja de herramientas consta de los siguientes componentes: 

Motor Docker : se utiliza como motor base o demonio Docker que se utiliza para ejecutar contenedores Docker.



Docker Machine : para ejecutar los comandos de la máquina Docker.



Docker Compose para ejecutar comandos de redacción de Docker.



Cinemática : esta es la GUI de Docker creada para Windows y Mac OS.



Oracle virtualbox

Analicemos ahora los diferentes tipos de actividades que son posibles con Docker toolbox.

Corriendo en Powershell Con Docker toolbox en Windows 10, ahora puede ejecutar comandos Docker fuera de powershell . Si abre powershell en Windows y escribe el comando de la versión de Docker, obtendrá todos los detalles necesarios sobre la versión de Docker instalada.

Extraer imágenes y ejecutar contenedores Ahora también puede extraer imágenes de Docker Hub y ejecutar contenedores en powershell como lo haría en Linux. El siguiente ejemplo mostrará brevemente la descarga de la imagen de Ubuntu y la ejecución del contenedor fuera de la imagen. El primer paso es usar el comando de extracción de Docker para extraer la imagen de Ubuntu de Docker Hub.

El siguiente paso es ejecutar la imagen de Docker con el siguiente comando de ejecución : docker run –it ubuntu /bin/bash

Notará que el comando es el mismo que en Linux.

Kitematic

Esta es la GUI equivalente de Docker en Windows. Para abrir esta GUI, vaya a la barra de tareas y en el icono de Docker, haga clic derecho y elija abrir Kitematic.

Le pedirá que descargue Kitematic GUI. Una vez descargado, simplemente descomprima el contenido. Habrá un archivo llamado Kitematic.exe . Haga doble clic en este archivo exe para abrir la interfaz GUI. Luego se le pedirá que inicie sesión en Docker Hub, ingrese a través de la GUI. Simplemente ingrese el nombre de usuario y contraseña requeridos y luego haga clic en el botón Iniciar sesión.

Una vez que haya iniciado sesión, podrá ver todas las imágenes descargadas en el sistema en el lado izquierdo de la interfaz.

En el lado derecho, encontrará todas las imágenes disponibles en Docker Hub. Tomemos un ejemplo para entender cómo descargar la imagen Node de Docker Hub usando Kitematic. Paso 1 : ingrese la palabra clave del nodo en los criterios de búsqueda.

Paso 2 : haga clic en el botón Crear en la imagen oficial del nodo. Luego verá la imagen que se está descargando.

Una vez que se ha descargado la imagen, comenzará a ejecutar el contenedor Node.

Paso 3 : si va a la pestaña de configuración , puede profundizar en otras opciones de configuración, como se muestra a continuación. 

Configuración general : en esta pestaña, puede nombrar el contenedor, cambiar la configuración de ruta y eliminar el contenedor.



Puertos : aquí puede ver las diferentes asignaciones de puertos. Si lo desea, puede crear sus propias asignaciones de puertos.



Volúmenes : aquí puede ver las diferentes asignaciones de volumen.



Avanzado : contiene la configuración avanzada del contenedor.

Docker - Configuración de ASP.Net ASP.Net es el marco de desarrollo web estándar que proporciona Microsoft para desarrollar aplicaciones del lado del servidor. Dado que ASP.Net ha existido durante bastante tiempo para el desarrollo, Docker se ha asegurado de que tenga soporte para ASP.Net. En este capítulo, veremos los diversos pasos para obtener el contenedor Docker para ASP.Net en funcionamiento.

Prerrequisitos Los siguientes pasos deben realizarse primero para ejecutar ASP.Net. Paso 1 : dado que esto solo puede ejecutarse en sistemas Windows, primero debe asegurarse de tener Windows 10 o Windows Server 2016. Paso 2 : a continuación, asegúrese de que Hyper-V y los contenedores estén instalados en el sistema Windows. Para instalar Hyper – V y Contenedores, puede ir a Activar o desactivar las características de Windows. Luego, asegúrese de que la opción Hyper-V y los contenedores estén marcados y haga clic en el botón Aceptar.

El sistema puede requerir un reinicio después de esta operación. Paso 3 : a continuación, debe usar el siguiente comando de Powershell para instalar la versión 1.13.0rc4 de Docker. El siguiente comando descargará esto y lo almacenará en la ubicación temporal. Invoke-WebRequest "https://test.docker.com/builds/Windows/x86_64/docker-1.13.0rc4.zip" -OutFile "$env:TEMP\docker-1.13.0-rc4.zip" – UseBasicParsing

Paso 4 : a continuación, debe expandir el archivo con el siguiente comando de PowerShell . Expand-Archive -Path "$env:TEMP\docker-1.13.0-rc4.zip" DestinationPath $env:ProgramFiles

Paso 5 : a continuación, debe agregar los archivos Docker a la variable de entorno con el siguiente comando de PowerShell . $env:path += ";$env:ProgramFiles\Docker"

Paso 6 : a continuación, debe registrar el servicio Docker Daemon con el siguiente comando de PowerShell . dockerd --register-service

Paso 7 - Finalmente, puede iniciar el demonio docker usando el siguiente comando. Start-Service Docker

Use el comando docker version en powershell para verificar que el dacker de docker funciona

Instalación del contenedor ASP.Net Veamos cómo instalar el contenedor ASP.Net. Paso 1 : el primer paso es extraer la imagen de Docker Hub. Cuando inicie sesión en Docker Hub, podrá buscar y ver la imagen de Microsoft / aspnet como se muestra a continuación. Simplemente escriba asp en el cuadro de búsqueda y haga clic en el enlace Microsoft / aspnet que aparece en los resultados de búsqueda.

Paso 2 : verá el comando de extracción de Docker para ASP.Net en los detalles del repositorio en Docker Hub.

Paso 3 : vaya a Docker Host y ejecute el comando de extracción de Docker para la imagen de microsoft / aspnet. Tenga en cuenta que la imagen es bastante grande, en algún lugar cercano a 4.2 GB.

Paso 4 : ahora ve a la siguiente ubicación https://github.com/Microsoft/aspnetdocker y descarga todo el repositorio de Git. Paso 5 : crea una carpeta llamada App en tu unidad C. Luego copie el contenido de la carpeta 4.6.2 / sample en su unidad C. Vaya al archivo Docker en el directorio de muestra y emita el siguiente comando: docker build –t aspnet-site-new –build-arg site_root=/

Deben tenerse en cuenta los siguientes puntos sobre el comando anterior: 

Construye una nueva imagen llamada aspnet-site-new desde el archivo Docker.



La ruta raíz se establece en la carpeta localpath.

Paso 6 : ahora es el momento de ejecutar el contenedor. Se puede hacer usando el siguiente comando: docker run –d –p 8000:80 –name my-running-site-new aspnetsite-new

Paso 7 : ahora tendrá IIS ejecutándose en el contenedor Docker. Para encontrar la dirección IP del contenedor Docker, puede emitir el comando de inspección Docker como se muestra a continuación.

Docker - Nube Docker Cloud es un servicio proporcionado por Docker en el que puede realizar las siguientes operaciones: 

Nodos : puede conectar Docker Cloud a sus proveedores de nube existentes, como Azure y AWS, para activar contenedores en estos entornos.



Repositorio en la nube : proporciona un lugar donde puede almacenar sus propios repositorios.



Integración continua : conéctese con Github y cree una tubería de integración continua.



Implementación de aplicaciones : despliegue y escale infraestructura y contenedores.



Implementación continua : puede automatizar las implementaciones.

Empezando Puede ir al siguiente enlace Cloud: https://cloud.docker.com/

para

comenzar

a

usar

Docker

Una vez que haya iniciado sesión, se le proporcionará la siguiente interfaz básica:

Conexión al proveedor de la nube

El primer paso es conectarse a un proveedor de nube existente. Los siguientes pasos le mostrarán cómo conectarse con un proveedor de Amazon Cloud. Paso 1 : el primer paso es asegurarse de tener las claves de AWS correctas. Esto se puede tomar de la consola aws . Inicie sesión en su cuenta aws usando el siguiente enlace: https://aws.amazon.com/console/

Paso 2 : una vez que hayas iniciado sesión, ve a la sección Credenciales de seguridad. Tome nota de las teclas de acceso que se utilizarán desde Docker Hub.

Paso 3 : a continuación, debe crear una política en aws que permita a Docker ver las instancias de EC2. Vaya a la sección de perfiles en aws . Haga clic en el botón Crear política .

Paso 4 : haga clic en 'Crear su propia política' y proporcione el nombre de la política como dockercloudpolicy y la definición de la política como se muestra a continuación. { "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:*", "iam:ListInstanceProfiles" ], "Effect": "Allow", "Resource": "*" } ] }

A continuación, haga clic en la Política Crear botón Paso 5 : a continuación, debe crear una función que Docker utilizará para activar los nodos en AWS. Para esto, vaya a la sección Roles en AWS y haga clic en la opción Crear nuevo rol .

Paso 6 : indique el nombre del rol como dockercloud-role .

Paso 7 : en la siguiente pantalla, vaya a 'Función para el acceso cruzado a la cuenta' y seleccione "Proporcionar acceso entre su cuenta y una cuenta de AWS de terceros".

Paso 8 : en la siguiente pantalla, ingrese los siguientes detalles: 

En el campo ID de cuenta, ingrese la ID para el servicio Docker Cloud: 689684103426.



En el campo ID externo, ingrese su nombre de usuario de Docker Cloud.

Paso 9 : luego, haga clic en el botón Siguiente paso y en la siguiente pantalla, adjunte la política que se creó en el paso anterior.

Paso 10 - Finalmente, en la última pantalla cuando se crea el rol, asegúrese de copiar el rol arn que se creó. arn:aws:iam::085363624145:role/dockercloud-role

Paso 11 : ahora regrese a Docker Cloud , seleccione Proveedores de nube y haga clic en el símbolo de enchufe junto a Amazon Web Services.

Ingrese el rol arn y haga clic en el botón Guardar .

Una vez guardado, la integración con AWS estaría completa.

Configuración de nodos Una vez que se completa la integración con AWS, el siguiente paso es configurar un nodo. Vaya a la sección Nodos en Docker Cloud. Tenga en cuenta que la configuración de nodos configurará automáticamente un clúster de nodos primero. Paso 1 : ve a la sección Nodos en Docker Cloud.

Paso 2 : a continuación, puede proporcionar los detalles de los nodos que se configurarán en AWS.

Luego puede hacer clic en el clúster de Nodo de inicio que estará presente en la parte inferior de la pantalla. Una vez que se despliega el nodo, recibirá la notificación en la pantalla Grupo de nodos.

Implementar un servicio El siguiente paso después de implementar un nodo es implementar un servicio. Para hacer esto, debemos realizar los siguientes pasos. Paso 1 : ve a la sección Servicios en Docker Cloud. Haga clic en el botón Crear

Paso 2 : elija el servicio que se requiere. En nuestro caso, elijamos mongo .

Paso 3 : en la siguiente pantalla, elige la opción Crear e implementar . Esto comenzará a implementar el contenedor Mongo en su clúster de nodos.

Una vez implementado, podrá ver el contenedor en estado de ejecución.

Docker - Registro Docker cuenta con mecanismos de registro que pueden usarse para depurar problemas cuando ocurren. Hay registros a nivel de daemon y a nivel de contenedor . Veamos los diferentes niveles de registro.

Daemon Logging En el nivel de registro de daemon, hay cuatro niveles de registro disponibles: 

Depurar : detalla toda la información posible manejada por el proceso del demonio.



Información - Detalla todos los errores + Información manejada por el proceso del demonio.



Errores : detalla todos los errores manejados por el proceso del demonio.



Fatal : solo detalla todos los errores fatales manejados por el proceso del demonio.

Siga los siguientes pasos para aprender cómo habilitar el registro. Paso 1 : Primero, debemos detener el proceso de Docker Daemon , si ya se está ejecutando. Se puede hacer usando el siguiente comando: sudo service docker stop

Paso 2 : ahora tenemos que iniciar el proceso de Docker Daemon . Pero esta vez, necesitamos agregar el parámetro –l para especificar la opción de registro. Entonces, emita el siguiente comando al iniciar el proceso de Docker Daemon . sudo dockerd –l debug &

Deben tenerse en cuenta los siguientes puntos sobre el comando anterior: 

dockerd es el ejecutable para el proceso docker daemon .



La opción –l se usa para especificar el nivel de registro. En nuestro caso, estamos poniendo esto como depuración



& se utiliza para volver al símbolo del sistema después de que se haya habilitado el registro.

Una vez que inicie el proceso de Docker con el registro, también verá que los registros de depuración se envían a la consola.

Ahora, si ejecuta cualquier comando de Docker, como imágenes de Docker , la información de depuración también se enviará a la consola.

Registro de contenedores El registro también está disponible a nivel de contenedor. Entonces, en nuestro ejemplo, hagamos girar primero un contenedor de Ubuntu. Podemos hacerlo usando el siguiente comando. sudo docker run –it ubuntu /bin/bash

Ahora, podemos usar el comando docker log para ver los registros del contenedor. Sintaxis Docker logs containerID Parámetros 

containerID : este es el ID del contenedor para el que necesita ver los registros.

Ejemplo

En nuestro Docker Host, emita el siguiente comando. Antes de eso, puede emitir algunos comandos mientras está en el contenedor. sudo docker logs 6bfb1271fcdd Salida

Desde el resultado, puede ver que los comandos ejecutados en el contenedor se muestran en los registros.

Docker - Componer Docker Compose se usa para ejecutar múltiples contenedores como un solo servicio. Por ejemplo, suponga que tiene una aplicación que requiere NGNIX y MySQL, puede crear un archivo que inicie los dos contenedores como un servicio sin la necesidad de iniciar cada uno por separado. En este capítulo, veremos cómo comenzar con Docker Compose. Luego, veremos cómo obtener un servicio simple con MySQL y NGNIX en funcionamiento usando Docker Compose.

Docker Compose ─ Instalación Deben seguirse los siguientes pasos para que Docker Compose esté en funcionamiento. Paso 1 : descargue los archivos necesarios de github con el siguiente comando:

curl -L "https://github.com/docker/compose/releases/download/1.10.0rc2/dockercompose -$(uname -s) -$(uname -m)" -o /home/demo/docker-compose

El comando anterior descargará la última versión de Docker Compose que en el momento de escribir este artículo es 1.10.0-rc2 . Luego lo almacenará en el directorio / home / demo / .

Paso 2 : a continuación, debemos proporcionar privilegios de ejecución al archivo Docker Compose descargado, utilizando el siguiente comando: chmod +x /home/demo/docker-compose

Entonces podemos el componer versión.

utilizar

el

siguiente

comando

para

ver

Sintaxis docker-compose version Parámetros 

versión : se utiliza para especificar que queremos los detalles de la versión de Docker Compose .

Salida

Se mostrarán los detalles de la versión de Docker Compose. Ejemplo

El siguiente ejemplo muestra cómo obtener la versión docker-compose . sudo ./docker-compose -version Salida

Luego obtendrá el siguiente resultado:

Crear su primer archivo Docker-Compose Ahora sigamos adelante y creemos nuestro primer archivo Docker Compose. Todos los archivos de Docker Compose son archivos YAML. Puede crear uno con el editor vim. Entonces ejecute el siguiente comando para crear el archivo de redacción : sudo vim docker-compose.yml

Echemos un vistazo de cerca a los diversos detalles de este archivo: 

La base de datos y la palabra clave web se utilizan para definir dos servicios separados. Uno ejecutará nuestra base de datos mysql y el otro será nuestro servidor web nginx .



La palabra clave image se usa para especificar la imagen de dockerhub para nuestros contenedores mysql y nginx



Para la base de datos, estamos usando la palabra clave ports para mencionar los puertos que deben exponerse para mysql .



Y luego, también especificamos las variables de entorno para mysql que se requieren para ejecutar mysql .

Ahora ejecutemos nuestro archivo Docker Compose usando el siguiente comando: sudo ./docker-compose up

Este comando tomará el archivo docker-compose.yml en su directorio local y comenzará a construir los contenedores.

Una vez ejecutadas, todas las imágenes comenzarán a descargarse y los contenedores se iniciarán automáticamente.

Y cuando haces un docker ps , puedes ver que los contenedores están en funcionamiento.

Docker - Integración continua Docker tiene integraciones con muchas herramientas de Integración continua, que también incluye la popular herramienta de CI conocida como Jenkins . Dentro de Jenkins, tiene complementos disponibles que se pueden usar para trabajar con contenedores. Así que veamos rápidamente un complemento Docker disponible para la herramienta Jenkins. Vayamos paso a paso y veamos qué hay disponible en Jenkins para contenedores Docker. Paso 1 : ve al panel de Jenkins y haz clic en Administrar Jenkins .

Paso 2 : ve a Administrar complementos .

Paso 3 : busca los complementos de Docker. Elija el complemento Docker y haga clic en el botón Instalar sin reiniciar .

Paso 4 : una vez completada la instalación, vaya a su trabajo en el panel de Jenkins. En nuestro ejemplo, tenemos un trabajo llamado Demo .

Paso 5 : en el trabajo, cuando va al paso Construir, ahora puede ver la opción de iniciar y detener contenedores.

Paso 6 : como ejemplo simple, puede elegir la opción adicional para detener los contenedores cuando se complete la compilación. Luego, haga clic en el botón Guardar .

Ahora, solo dirige tu trabajo en Jenkins. En la salida de la consola, ahora podrá ver que se ha ejecutado el comando para detener todos los contenedores.

Docker - Arquitectura Kubernetes Kubernetes es un marco de orquestación para contenedores Docker que ayuda a exponer contenedores como servicios al mundo exterior. Por ejemplo, puede tener dos servicios: un servicio contendría nginx y mongoDB , y otro servicio contendría nginx y redis . Cada servicio puede tener una IP o punto de servicio que puede ser conectado por otras aplicaciones. Kubernetes se utiliza para administrar estos servicios. El siguiente diagrama muestra en un formato simplista cómo funciona Kubernetes desde el punto de vista de la arquitectura.

El minion es el nodo en el que se ejecutan todos los servicios. Puedes tener muchos secuaces corriendo en un punto en el tiempo. Cada minion albergará uno o más POD. Cada POD es como alojar un servicio. Cada POD contiene los contenedores Docker. Cada POD puede alojar un conjunto diferente de contenedores Docker. El proxy se usa para controlar la exposición de estos servicios al mundo exterior. Kubernetes tiene varios componentes en su arquitectura. El papel de cada componente se explica a continuación & mius; 

etcd : este componente es un almacén de valores clave de alta disponibilidad que se utiliza para almacenar la configuración compartida y el descubrimiento de servicios . Aquí las diversas aplicaciones podrán conectarse a los servicios a través del servicio de descubrimiento .



Franela : esta es una red de fondo que se requiere para los contenedores.



kube-apiserver : esta es una API que se puede utilizar para orquestar los contenedores Docker.



kube-controller-manager : se usa para controlar los servicios de Kubernetes .



kube-Scheduler : se usa para programar los contenedores en los hosts.



Kubelet : se utiliza para controlar el lanzamiento de contenedores a través de archivos de manifiesto .



kube-proxy : se utiliza para proporcionar servicios de proxy de red al mundo exterior.

Docker - Trabajo de Kubernetes En este capítulo, veremos cómo instalar Kubenetes a través de kubeadm . Esta es una herramienta que ayuda en la instalación de Kubernetes. Vayamos paso a paso y aprendamos cómo instalar Kubernetes. Paso 1 : asegúrese de que la versión del servidor Ubuntu en la que está trabajando sea la 16.04 . Paso 2 : asegúrese de generar una clave ssh que se pueda usar para iniciar sesión ssh . Puede hacer esto usando el siguiente comando. ssh-keygen

Esto generará una clave en su carpeta de inicio como se muestra a continuación.

Paso 3 : a continuación, según la versión de Ubuntu que tenga, deberá agregar el sitio relevante a docker.list para el administrador de paquetes apt , de modo que pueda detectar los paquetes de Kubernetes desde el sitio de kubernetes y descargar ellos en consecuencia. Podemos hacerlo usando los siguientes comandos. curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add echo "deb http://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/docker.list

Paso 4 : luego emitimos una actualización de apt-get para garantizar que todos los paquetes se descarguen en el servidor Ubuntu.

Paso 5 : instale el paquete Docker como se detalla en los capítulos anteriores. Paso 6 : ahora es el momento de instalar kubernetes instalando los siguientes paquetes: apt-get install –y kubelet kubeadm kubectl kubernetes-cni

Paso 7 : una vez que se descargan todos los paquetes de kubernetes , es hora de iniciar el controlador de kubernetes con el siguiente comando: kubeadm init

Una vez hecho esto, recibirá un mensaje exitoso de que el maestro está en funcionamiento y que los nodos ahora pueden unirse al clúster.