Está en la página 1de 136

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 para Windows


desde: https://docs.docker.com/docker-for-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 ToolBox


desde: https://www.docker.com/products/docker-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 Docker Hub es: https://www.docker.com/community-
edition#/add_ons
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 el comando sudo para garantizar que se ejecute
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.

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á los procesos en un contenedor en
ejecución 07b0b6f434fe .
Salida
Cuando ejecutamos el comando anterior, producirá el siguiente resultado:

docker sin pausa


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á los procesos en el contenedor en
ejecución 07b0b6f434fe .
Salida
Cuando ejecutamos el comando anterior, producirá el siguiente resultado:
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 contenedor de
un estado detenido a un estado de ejecución .

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 instalar
la imagen nsenter . Se puede hacer mediante el siguiente comando:
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 al shell bash directamente cuando emitimos
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.

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 demousr@gmail.com

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 demousr@gmail.com
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 demousr@gmail.com
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 demousr@gmail.com
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 demousr@gmail.com
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 utilizando
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.
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.0-
rc4.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/aspnet-
docker 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 aspnet-
site-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 para comenzar a usar Docker
Cloud: https://cloud.docker.com/
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.0-
rc2/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 utilizar el siguiente comando para ver


el componer versión.
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.

También podría gustarte