Saltar al contenido

Tutorial de Docker para principiantes: conceptos básicos, arquitectura, contenedores

¿Qué es Docker?

Estibador Es una plataforma de desarrollo de software para virtualización con múltiples sistemas operativos que se ejecutan en el mismo host. Ayuda a separar la infraestructura y las aplicaciones para entregar software rápidamente. A diferencia de los hipervisores, que se utilizan para crear máquinas virtuales (máquinas virtuales), Docker virtualiza a nivel de sistema, también conocido como contenedores de Docker.

Como puede ver la diferencia en la imagen a continuación, los contenedores de Docker se ejecutan en la parte superior del sistema operativo del host. Esto le ayuda a mejorar la eficiencia y la seguridad. Además, podemos ejecutar más contenedores en la misma infraestructura que máquinas virtuales porque los contenedores utilizan menos recursos.

Virtualización en Docker vs Hypervisor

A diferencia de las VM que pueden comunicarse con el hardware del host (p. Ej., Adaptador Ethernet para crear más adaptadores virtuales), los contenedores de acoplamiento en un entorno remoto se ejecutan sobre el sistema operativo del host. Incluso si Windows ejecuta su host de Windows, puede ejecutar imágenes de Linux en contenedores con la ayuda de Hyper-V, que crea automáticamente una pequeña máquina virtual para verificar la imagen inferior del sistema, en este caso, Linux.

En este tutorial para principiantes de Docker, aprenderá los conceptos básicos de Docker, como:

¿Por qué utilizar Docker?

Arquitectura de Docker

Ahora, en este tutorial de contenedores de Docker, hablemos de las partes clave de Docker en la arquitectura de Docker:

Arquitectura de Docker

Motor de Docker

Docker es el tipo de aplicación cliente-servidor que significa que tenemos clientes que envían al servidor. El llamado demonio de Docker: dockerd es el motor de Docker que representa al servidor. El demonio docker y los clientes pueden ejecutarse en el mismo host o en un host remoto, y comunicarse a través del binario del cliente de línea de comandos, así como una API RESTful completa para interactuar con el demonio: dockerd.

Imágenes de Docker

Las imágenes del muelle son el «código fuente» de nuestros contenedores; los usamos para construir contenedores. Pueden tener software preinstalado que acelera la implementación. Son portátiles y podemos utilizar imágenes existentes o crear las nuestras.

Programas de Docker

Docker almacena las imágenes que tomamos en registros. Hay registros públicos y privados. Una empresa llamada Docker tiene un registro público llamado Muelle de azúcar, donde también puede almacenar imágenes de forma privada. El hub de Docker contiene millones de imágenes, que puede comenzar a usar ahora.

Contenedores Docker

Los contenedores son las unidades organizativas y uno de los conceptos básicos de Docker. Cuando tomamos una imagen y comenzamos a correr; estamos corriendo en un contenedor. La analogía del contenedor se utiliza debido a la portabilidad del software que estamos ejecutando en nuestro contenedor. Podemos moverlo, es decir, “enviar”, modificar, gestionar, crear o eliminar el software, destruirlo, como pueden hacer los buques de carga con contenedores reales.

En términos simples, una imagen es una plantilla y un contenedor es una copia de esa plantilla. Puede tener varios contenedores (copias) de la misma imagen.

A continuación tenemos una imagen que ilustra a la perfección la interacción entre los distintos componentes y cómo funciona la tecnología de contenedores de Docker.

Lo que tenemos con muchos comandos de dockers docker command, docker run … hablaremos más de eso más adelante.

Cómo instalar Docker en Linux / Ubuntu

A continuación se muestra un proceso de instalación de Docker paso a paso en Linux / Ubuntu:

Paso 1) Para instalar Docker, necesitamos usar los paquetes DEB del equipo de Docker.

Para hacer esto, necesita algunos paquetes de requisitos previos de Ubuntu.

Utilice el siguiente comando para instalar paquetes de Ubuntu


$ sudo apt-get install 
apt-transport-https 
ca-certificates curl 
software-properties-common

* no requiere el signo «/» usado para la nueva línea, si lo desea puede escribir el comando sin usar «/» en una sola línea.

Paso 2) Agregue la clave GPG oficial de Docker a la huella digital.

Use el comando de Docker a continuación para ingresar la clave GPG


$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Paso 3) A continuación, agregue el repositorio APT de Docker.

Use el comando de Docker a continuación para agregar el repositorio


$ sudo add-apt-repository  
"deb [arch=amd64] https://download.docker.com/linux/ubuntu  
$(lsb_release -cs) 
stable"

Es posible que se le solicite que confirme que desea agregar el repositorio y que agregue automáticamente la clave GPG a su host.

El comando lsb_release debe incluir una versión distribuida de Ubuntu de su host.

Paso 4) Después de agregar la clave GPG,

Actualice las fuentes APT usando el comando de Docker a continuación


$ sudo apt-get update

Ahora podemos instalar el paquete de Docker.

Paso 5) Cuando se actualizan las fuentes APT,

Comience a instalar los paquetes de Docker en Ubuntu usando el comando de Docker a continuación


$ sudo apt-get install docker-ce

El comando anterior instala Docker y otros paquetes adicionales necesarios. Antes de Docker 1.8.0, lxc-docker era el nombre del paquete, y entre Docker 1.8 y 1.13, el nombre del paquete era motor de ventana acoplable.

NOTA: Docker para Windows requiere la ejecución de la versión Windows 10 Pro o Enterprise 14393, o el servidor Windows 2016 RTM

Cómo usar Docker usando comandos básicos de Docker

Así es como se puede usar Docker con los comandos básicos de Docker:

El comando más básico que debemos ejecutar después de instalar Docker es $ docker info como dijimos antes.


$ sudo docker info

Debería obtener el mismo resultado o el siguiente

Como vemos en el ejemplo de Docker anterior, tenemos información sobre cuántos contenedores de muelle se están ejecutando, deteniéndose o deteniéndose y cuántas imágenes hemos descargado. Así que obtengamos nuestra primera imagen en este tutorial de comandos de Docker.


$ sudo docker pull alpine

Con este comando le estamos diciendo a Docker que descargue la imagen alpine, que la extraiga del registro público, la última versión configurada por defecto.

Alpine Linux, basado en Alpine Linux, es una imagen mínima de Docker con un índice de paquete completo y solo 5 MB de tamaño.

Si queremos ejecutar la imagen como contenedor, usaremos el siguiente comando en este tutorial de Docker.


$ sudo docker run -i -t alpine /bin/bash

Si ejecutamos el comando, seremos enviados directamente a la terminal alpina. La bandera -i STDIN se mantiene abierta desde el contenedor, incluso cuando no está conectado a él. Esta entrada continua estándar es la mitad de lo que necesita para un shell interactivo. El indicador -t es la otra mitad e indica a Docker que asigne un simulacro al contenedor. Esto nos da un shell interactivo en el nuevo contenedor. Desechamos el contenedor con un simple comando de salida.

Ahora, en este tutorial básico de Docker, podemos intentar ejecutar una imagen de Ubuntu.


$ sudo docker run -it ubuntu /bin/bash

Puede observar que la ventana acoplable busca la imagen localmente y, si no está allí, la imagen se extrae automáticamente de la biblioteca de imágenes y, una vez más, tenemos un shell interactivo en ejecución. También podemos nombrar los contenedores mientras estamos en ejecución.


$ sudo docker run –-name our_container -it ubuntu /bin/bash

y lo dejamos de nuevo.

También podemos ejecutar un contenedor que creamos anteriormente, sin un shell interactivo.


$ sudo docker start container_name

Y deje de escribir docker docker stop container_name


$ sudo docker stop container_name

Si queremos ver todos los contenedores actuales, simplemente ejecutamos


$ docker ps

Y para cada contenedor agregamos una «- a» al final de este mismo comando, como esta ventana acoplable ps -a.

Este comando muestra el ID del contenedor, la imagen que se está utilizando cuando se creó, el estado actual, los puertos expuestos y un nombre generado aleatoriamente para el contenedor para facilitar la administración.

Cuando ejecutamos contenedores, también queremos saber cuántos recursos están usando, para ello podemos usar el comando.


$ docker stats

También puede ver las imágenes que hemos descargado localmente e información sobre ellas.


$ sudo docker images

El comando en el ejemplo de Docker anterior muestra la imagen de la ventana acoplable con una etiqueta que muestra nuestra versión de imagen, un ID de imagen único, cuándo se creó y el tamaño de la imagen.

¿Qué es la virtualización?

Anteriormente, el proceso de implementación de un servicio era lento y doloroso. Inicialmente, los desarrolladores estaban escribiendo código; el equipo de operaciones lo usaría luego en máquinas completas, donde tenían que estar atentos a las versiones de la biblioteca, los parches y los compiladores de lenguaje para que el código funcionara. Si hubiera algunos bugs o errores, el proceso comenzaría de nuevo, los desarrolladores lo arreglarían y, nuevamente, el equipo de operaciones estaría allí para implementarlo.

Se mejoró la creación de hipervisores. Muchos conectores virtuales tienen máquinas virtuales o VM en el mismo host, que pueden estar ejecutándose o apagándose. Las máquinas virtuales redujeron el tiempo de espera para corregir el código y corregir un error a lo grande, pero el verdadero cambio fue el juego de contenedores Docker.

Comandos importantes de Docker

A continuación se muestran los comandos clave de Docker:

PedidoSuelte
información de la ventana acoplableOrden de información
tire de la ventana acoplableDescargar imagen
ejecutar docker -i -t nombre_imagen / bin / bashEjecuta la imagen como contenedor
Docker inicia our_containerIniciar un contenedor
detener la ventana acoplable nombre_contenedorDetener contenedor
ps dockerLista de contenedores actuales
estadísticas de DockerInformación del contenedor
imágenes de dockerLista de imágenes descargadas
Limpieza de DockerMata todos los contenedores actuales.

Resumen