Introducción a Docker

Docker es un conjunto de productos de plataforma como servicio (PaaS) que utilizan la visualización a nivel del sistema operativo para entregar software en paquetes denominados contenedores. Los contenedores están aislados y empaquetados con su propio software, bibliotecas y archivos de configuración; pueden comunicarse entre sí a través de canales bien definidos. Cada contenedor es ejecutado por un solo kernel de sistema operativo y, por lo tanto, utiliza menos recursos que una máquina virtual.

Diferencia entre Contenedores Docker y Máquinas Virtuales

1. Contenedores Docker

  • Los contenedores Docker contienen binarios, bibliotecas y archivos de configuración junto con la propia aplicación.
  • No tienen un sistema operativo invitado para cada contenedor y dependen del kernel del sistema operativo subyacente, lo que hace que los contenedores sean livianos.
  • Los contenedores comparten recursos con otros contenedores en el mismo sistema operativo host y proporcionan aislamiento de procesos a nivel del sistema operativo.

2. Máquinas virtuales

  • Las máquinas virtuales (VM) se ejecutan en hipervisores, lo que permite que varias máquinas virtuales se ejecuten en una sola máquina junto con su propio sistema operativo.
  • Cada máquina virtual tiene su propia copia de un sistema operativo junto con la aplicación y los archivos binarios requeridos, lo que la hace mucho más grande y requiere más recursos.
  • Proporcionan aislamiento de procesos a nivel de hardware y tardan en iniciarse.

Términos importantes en Docker

1. Imagen acoplable

  • Es un archivo, que consta de varias capas, que se utiliza para ejecutar código en un contenedor Docker.
  • Son un conjunto de directivas que se utilizan para crear contenedores de base.

2. Contenedor Docker

  • Su imagen es una muestra de tiempo de ejecución.
  • Permite a los desarrolladores empaquetar aplicaciones con todas las partes requeridas, como bibliotecas y otras dependencias.

3. Archivo acoplable

  • Es un documento de texto que contiene los comandos necesarios que ayudan a construir una imagen de Docker cuando se construye.
  • Una imagen acoplable se crea mediante un archivo acoplable.

4. Motor acoplable

  • El software que aloja los contenedores se llama Docker Engine.
  • Docker Engine es una aplicación cliente-servidor
  • El motor acoplable 3 principales componentes:
    • Servidor: es responsable de crear y administrar imágenes, contenedores, redes y volúmenes de Docker en Docker. Se conoce como un proceso daemon.
    • API REST: especifica cómo las aplicaciones pueden interactuar con el servidor y le indica qué hacer.
    • Cliente: El Cliente es una interfaz de línea de comandos (CLI) de Docker, que nos permite interactuar con Docker usando los comandos de Docker.

5. Recomendar Docker

  • Docker Hub es el repositorio oficial en línea donde puede encontrar otras imágenes de Docker disponibles para su uso.
  • Facilita encontrar, administrar y compartir imágenes de contenedores con otros.

Instalar Docker en Ubuntu

1. Eliminar la versión anterior de Docker

$ sudo apt-get remove docker docker-engine docker.io containerd runc

2. Instalar el motor Docker

$ sudo apt-get update
 
$ sudo apt-get install 
    ca-certificates 
    curl 
    gnupg 
    lsb-release

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

$ echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

$ sudo groupadd docker
$ sudo usermod -aG docker $USER

Compruebe si la ventana acoplable se instaló correctamente en su sistema

$ sudo docker run hello-world

Crear una aplicación en Docker

1. Cree una carpeta con 2 archivos (Dockerfile y archivo main.py) en ella.

  • Dockerfile
  • principal.py

2. Edite main.py con el siguiente código.

Python3



#!/usr/bin/env python3
print("Docker and GFG rock!")

3. Edite Dockerfile con los siguientes comandos.

FROM python:latest
COPY main.py /
CMD [ "python", "./main.py" ]

4. Cree una imagen de Docker.

Una vez que haya creado y editado el archivo main.py y el Dockerfile, cree su imagen para que contenga su aplicación.

$ docker build -t python-test .

La opción ‘-t’ permite definir el nombre de su imagen. El nombre que hemos elegido para la imagen es ‘python-test’.

5. Ejecute la imagen de Docker

Una vez que se crea la imagen, su código está listo para ejecutarse.

$ docker run python-test

Empuje la imagen a Docker Hub

1. Cree una cuenta en Docker Hub.

2. Haga clic en el botón «Crear repositorio», ingrese el nombre del archivo y haga clic en «Crear».

3. Ahora etiquetaremos «nuestra imagen» y la «empujaremos al repositorio de Docker Hub» que hemos creado.

Ahora, ejecute el siguiente comando para enumerar las imágenes de la ventana acoplable:

$ docker images

Lo anterior nos dará este resultado.

REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB

Se utiliza un ID de imagen para etiquetar la imagen. La sintaxis para etiquetar la imagen es:

docker tag <image-id> <your dockerhub username>/python-test:latest
$ docker tag c7857f97ebbd afrozchakure/python-test:latest

4. Empuje la imagen al repositorio de Docker Hub

$ docker push afrozchakure/python-test

Obtenga y ejecute la imagen desde Docker Hub

1. Para eliminar cada versión de una imagen en particular del sistema local, usamos la identificación de la imagen para ello.

$ docker rmi -f af939ee31fdc

2. Ahora ejecute la imagen, obtendrá la imagen del concentrador acoplable si no existe en su máquina local.

$ docker run afrozchakure/python-test

Conclusión:

Así que aprendió sobre los conceptos básicos de Docker, la diferencia entre las máquinas virtuales y los contenedores de Docker junto con alguna terminología común en Docker. Además, pasamos por la instalación de Docker en nuestros sistemas. Creamos una aplicación usando Docker y enviamos nuestra imagen a Docker Hub. Finalmente, aprendimos cómo podíamos extraer una imagen en particular de nuestro sistema local y luego extraer la imagen de Docker Hub si no existe localmente.

Mis notas personales
flecha_caer_arriba

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *