Docker es un conjunto de productos de plataformas como servicio (PaaS) que utilizan virtualización a nivel de sistema operativo para entregar software en paquetes llamados contenedores. Los contenedores están aislados unos de otros y agrupan su propio software, bibliotecas y archivos de configuración; pueden comunicarse entre sí a través de canales bien definidos. Todos los contenedores se ejecutan mediante un único kernel de sistema operativo y, por lo tanto, utilizan menos recursos que una máquina virtual.
Tabla de contenidos
- ¿Qué es Docker?
- ¿Por qué Docker es popular?
- ¿Qué es un archivo Docker?
- ¿Qué es la arquitectura Docker y cómo funciona Docker?
- ¿Qué es la imagen de Docker?
- ¿Qué es el contenedor Docker?
- ¿Qué es Docker Hub?
- ¿Qué es Docker Compose?
- ¿Cómo descargar Docker Desktop?
- Comandos acoplables
- Motor acoplable
- ¿Por qué utilizar Docker?
- ¿Qué es Docker para AWS?
- Diferencia entre contenedores Docker y máquinas virtuales
- Instalar Docker en Ubuntu
- Ejemplo de ejemplo: aplicación en contenedores mediante Docker
- Ejemplo de muestra para enviar una imagen a Docker Hub
- Obtenga y ejecute la imagen desde Docker Hub
- Beneficios de Docker
- Alternativas de Docker
- Seguridad acoplable
¿Qué es Docker?
Estibador es de código abierto contenedorización plataforma mediante la cual puede empaquetar su aplicación y todas sus dependencias en una unidad estandarizada llamada contenedor. Los contenedores son livianos, lo que los hace portátiles y están aislados de la infraestructura subyacente y de los demás contenedores. Puedes ejecutar el imagen acoplable como un contenedor acoplable en cualquier máquina donde esté instalado Docker sin depender del Sistema operativo.
¿Por qué Docker es popular?
Docker ganó popularidad debido a su impacto en el desarrollo y la implementación de software. Las siguientes son algunas de las razones principales por las que Docker se vuelve popular:
- Portabilidad: Docker facilita a los desarrolladores empaquetar sus aplicaciones con todas las dependencias en un único contenedor liviano. Facilita garantizar un rendimiento constante en los diferentes entornos informáticos.
- Reproducibilidad: Al encapsular las aplicaciones con sus dependencias dentro de un contenedor, se garantiza que las configuraciones de software permanezcan consistentes en los entornos de desarrollo, prueba y producción.
- Eficiencia: Docker a través de su arquitectura basada en contenedores optimiza la utilización de recursos. Permite a los desarrolladores ejecutar múltiples aplicaciones aisladas en un único sistema host.
- Escalabilidad: Las características de escalabilidad de Docker ayudaron a los desarrolladores a facilitar el manejo de sus aplicaciones en el momento del incremento de las cargas de trabajo.
¿Qué es un archivo Docker?
El archivo acoplable utiliza DSL (lenguaje específico de dominio) y contiene instrucciones para generar una imagen de Docker. Dockerfile definirá los procesos para producir rápidamente una imagen. Mientras crea su aplicación, debe crear un Dockerfile en orden desde el demonio acoplable ejecuta todas las instrucciones de arriba a abajo.
(El demonio Docker, a menudo denominado simplemente Docker, es un servicio en segundo plano que administra los contenedores Docker en un sistema).
- Es un documento de texto que contiene los comandos necesarios que, al ejecutarse, ayudan a ensamblar una imagen de Docker.
- La imagen de Docker se crea utilizando un Dockerfile.

Para saber más sobre Dockerfile, consulte la Docker: concepto de Dockerfile .
¿Qué es la arquitectura Docker y cómo funciona Docker?
Docker utiliza una arquitectura cliente-servidor. El cliente Docker habla con el demonio de Docker, que ayuda a crear, ejecutar y distribuir los contenedores de Docker. El cliente Docker se ejecuta con el demonio en el mismo sistema o podemos conectar el cliente Docker con el demonio Docker de forma remota. Con la ayuda de la API REST a través de un socket UNIX o una red, el cliente Docker y el demonio interactúan entre sí. Para saber más sobre el funcionamiento de Docker, consulte la Arquitectura de Docker .
¿Qué es la imagen de Docker?
Es un archivo, compuesto por varias capas, que se utiliza para ejecutar código en un contenedor Docker. Son un conjunto de instrucciones que se utilizan para crear contenedores acoplables. Docker Image es un paquete de software ejecutable que incluye todo lo necesario para ejecutar una aplicación. Esta imagen informa cómo se debe crear una instancia de un contenedor, determinando qué componentes de software se ejecutarán y cómo. Docker Container es un entorno virtual que agrupa el código de la aplicación con todas las dependencias necesarias para ejecutar la aplicación. La aplicación se ejecuta de forma rápida y fiable de un entorno informático a otro.
¿Qué es el contenedor Docker?
El contenedor Docker es una instancia en tiempo de ejecución de una imagen. Permite a los desarrolladores empaquetar aplicaciones con todas las partes necesarias, como bibliotecas y otras dependencias. Los contenedores Docker son instancias en tiempo de ejecución de imágenes de Docker. Los contenedores contienen todo el kit necesario para una aplicación, por lo que la aplicación se puede ejecutar de forma aislada. Por ejemplo, supongamos que hay una imagen del sistema operativo Ubuntu con NGINX SERVER cuando esta imagen se ejecuta con el comando docker run, entonces se creará un contenedor y NGINX SERVER se ejecutará en el sistema operativo Ubuntu.
¿Qué es Docker Hub?
Docker Hub es un servicio de repositorio y es un servicio basado en la nube donde las personas envían sus imágenes de contenedor Docker y también extraen las imágenes de contenedor Docker de Docker Hub en cualquier momento y en cualquier lugar a través de Internet. Generalmente facilita la búsqueda y reutilización de imágenes. Proporciona funciones como la de enviar sus imágenes como registro público o privado donde puede almacenar y compartir imágenes de Docker.
comando arp-a
Principalmente el equipo de DevOps utiliza Docker Hub. Es una herramienta de código abierto y está disponible gratuitamente para todos los sistemas operativos. Es como un almacenamiento donde almacenamos las imágenes y las extraemos cuando es necesario. Cuando una persona quiere enviar o extraer imágenes de Docker Hub, debe tener conocimientos básicos de Docker. Analicemos los requisitos de la herramienta Docker.
¿Qué es Docker Compose?
Docker Compose ejecutará una aplicación multicontenedor basada en YAML. El archivo YAML consta de todas las configuraciones necesarias para implementar contenedores. Composición acoplable , que se integra con Enjambre de Docker y proporciona instrucciones para construir e implementar contenedores. Con Docker Compose, cada contenedor está diseñado para ejecutarse en un único host.
¿Cómo descargar Docker Desktop?
Docker Desktop proporciona una GUI para trabajar en contenedores acoplables, imágenes acoplables y redes acoplables. Docker Desktop proporciona un entorno independiente que contiene Docker Engine, Docker CLI, Docker Compose, kubernetes, y otras herramientas necesarias para construir, enviar y ejecutar las aplicaciones en forma de contenedores, lo que las hace más fáciles de usar. Para saber más sobre cómo instalar Docker Desktop, consulte Imagen de muestra de Docker Desktop.
Comandos acoplables
Al introducir los comandos esenciales de Docker, Docker se convirtió en un software poderoso para agilizar el proceso de gestión de contenedores. Ayuda a garantizar flujos de trabajo de desarrollo e implementación fluidos. Los siguientes son algunos de los comandos de Docker que se usan comúnmente:
- Ejecución de Docker: Se utilizaba para iniciar los contenedores a partir de imágenes, especificando las opciones y comandos de tiempo de ejecución.
- Extracción de la ventana acoplable: Obtiene las imágenes del contenedor del registro de contenedores, como Docker Hub, en la máquina local.
- Docker PD : Ayuda a mostrar los contenedores en ejecución junto con su información importante, como el ID del contenedor, la imagen utilizada y el estado.
- Parada acoplable : Ayuda a detener los contenedores en ejecución y cerrar con gracia los procesos dentro de ellos.
- Inicio de Docker: Ayuda a reiniciar los contenedores detenidos, reanudando sus operaciones desde el estado anterior.
- Inicio de sesión en Docker: Es útil iniciar sesión en el registro de Docker, lo que permite el acceso a repositorios privados.
Para saber más sobre los comandos de la ventana acoplable, consulte la Docker: comandos de instrucción .
Motor acoplable
El software que aloja los contenedores se llama Docker Engine. Docker Engine es una aplicación basada en cliente-servidor. El motor Docker tiene 3 componentes principales:
- Servidor: Es responsable de crear y administrar imágenes, contenedores, redes y volúmenes de Docker en Docker. Se le conoce como proceso demonio.
- API DESCANSO : 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 utilizando los comandos de Docker.
¿Por qué utilizar Docker?
Docker se puede utilizar para empaquetar la aplicación y sus dependencias, lo que hace que sea liviano y fácil de enviar el código más rápido y con mayor confiabilidad. Docker hace que sea muy sencillo ejecutar la aplicación en el entorno de producción. El contenedor Docker puede ser independiente de la plataforma si el motor Docker está instalado en la máquina.
- Eficiencia de recursos : Docker ayuda a maximizar la utilización de recursos al ejecutar varios contenedores en un solo host. Ayuda a reducir los costos de infraestructura y mejora la eficiencia.
- Control de versiones: Simplifica el control de versiones de las aplicaciones y sus dependencias, garantizando la coherencia y facilitando la colaboración entre los equipos.
- Agilidad de microservicios: Permite la adopción de arquitectura de microservicios, promoviendo la escalabilidad, flexibilidad y aislamiento de fallas en el desarrollo ágil de aplicaciones.
¿Qué es Docker para AWS?
Docker es la herramienta más poderosa para ejecutar aplicaciones en forma de contenedores. Los contenedores Docker son livianos y se pueden ejecutar en cualquier sistema operativo.
AWS proporciona el servicio Amazon Elastic Container ( Amazon ECS ) es un servicio de contenedor totalmente administrado mediante el cual puede implementar, escalar y administrar los contenedores acoplables. Amazon ECS es la plataforma más confiable según el rendimiento y también se puede integrar con otros servicios de AWS, como equilibrio de carga, descubrimiento de servicios y monitoreo del estado de los contenedores. Para saber más sobre Servicio de contenedor elástico de Amazon (Amazon ECS) .
Diferencia entre contenedores Docker y máquinas virtuales
Las siguientes son las diferencias entre los contenedores acoplables y las máquinas virtuales:
Contenedores acoplables | Maquinas virtuales |
---|---|
Los Docker Containers contienen binarios, bibliotecas y archivos de configuración junto con la propia aplicación. reemplazar un color en gimp | Las máquinas virtuales (VM) se ejecutan en hipervisores, que permiten que varias máquinas virtuales se ejecuten en una sola máquina junto con su propio sistema operativo. |
No contienen un sistema operativo invitado para cada contenedor y dependen del kernel del sistema operativo subyacente, lo que hace que los contenedores sean livianos. | Cada VM tiene su propia copia de un sistema operativo junto con la aplicación y los binarios necesarios, lo que la hace significativamente más grande y requiere más recursos. |
Los contenedores comparten recursos con otros contenedores en el mismo sistema operativo host y proporcionan aislamiento de procesos a nivel del sistema operativo. | Proporcionan aislamiento de procesos a nivel de hardware y su arranque es lento. |
Instalar Docker en Ubuntu
Los siguientes pasos le guiarán en la instalación de Docker en Ubuntu:
Paso 1: eliminar la versión anterior de Docker
- Ejecute el siguiente comando para eliminar la versión anterior del software Docker:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>
Paso 2: instalar Docker Engine
- El siguiente comando se utiliza para la instalación del 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>
Paso 3: verificar la instalación de Docker
- Compruebe si Docker se instaló correctamente en su sistema intentando ejecutar un contenedor con el siguiente comando:
$ sudo docker run hello-world>
Para obtener más detalles sobre la instalación de Docker en Ubuntu, consulte esto: Artículo
Ejemplo de ejemplo: aplicación en contenedores mediante Docker
Los siguientes pasos guían la creación de contenedores de la aplicación mediante Docker:
Paso 1: cree la aplicación Dokcerfile y Python
- Cree una carpeta con 2 archivos (Dockerfile y archivo main.py) en ella
Paso 2: desarrollar código Python
- Edite main.py con el siguiente código o puede intentar desarrollar su propio código Python.
#!/usr/bin/env python3 print('Docker and GFG rock!')>
Paso 3: desarrollar un Dockerfile
- Edite Dockerfile con las siguientes instrucciones para desarrollar Dockerfile:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>
Paso 4: crea una imagen de Docker
- Una vez que haya creado y editado el archivo main.py y el Dockerfile, cree su imagen que contenga su aplicación ejecutando el siguiente comando:
$ sudo docker build -t python-test .>
- La opción '-t' permite definir el nombre de su imagen. 'python-test' es el nombre que hemos elegido para la imagen.
Paso 5: ejecutar el contenedor Docker
- Una vez creada la imagen, su código estará listo para ejecutarse.
$ sudo docker run python-test>
Para saber más sobre esta contenedorización de su aplicación, consulte esto: Artículo
Ejemplo de muestra para enviar una imagen a Docker Hub
Los siguientes pasos guían cómo enviar una imagen a Dockerhub:
Paso 1: Cree una cuenta en Docker Hub o use una existente si ya tiene una.
Paso 2: Haga clic en el botón Crear repositorio, coloque el nombre del archivo y haga clic en Crear.
Paso 3: Ahora etiquetaremos nuestra imagen y la enviaremos al repositorio de Docker Hub que acabamos de crear.
buey contra toro
- 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>
- La identificación de imagen se utiliza para etiquetar la imagen. La sintaxis para etiquetar la imagen es:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>
Etapa 4: Enviar imagen al repositorio de Docker Hub
$ docker push afrozchakure/python-test>
Para saber más sobre la publicación de imágenes en Dockerhub, consulte esto: Artículo
Obtenga y ejecute la imagen desde Docker Hub
1. Para eliminar todas las versiones de una imagen en particular de nuestro sistema local, usamos el ID de imagen para ello.
$ docker rmi -f af939ee31fdc>
2. Ahora ejecute la imagen, la recuperará del Docker Hub si no existe en su máquina local.
$ docker run afrozchakure/python-test>
Beneficios de Docker
Los siguientes son algunos de los beneficios de Docker:
- Portabilidad: Docker permite la creación de contenedores portátiles livianos que no pueden instalarse en ninguna máquina, independientemente de los sistemas operativos subyacentes.
- Aislamiento: Docker a través de contenedores proporciona un alto nivel de aislamiento al permitir que las aplicaciones se ejecuten de forma independiente entre sí, solucionando los problemas de que un contenedor no afecta a otro.
- Reproducibilidad: Con él, los desarrolladores de Docker pueden empaquetar fácilmente sus aplicaciones y sus dependencias en imágenes reutilizables. Permite compilaciones consistentes y reproducibles en los entornos de desarrollo, prueba y producción.
- Integración de DevOps : Promueve la colaboración y la automatización a lo largo del ciclo de vida del desarrollo de software para manejar las crecientes cargas de trabajo.
Alternativas de Docker
Las siguientes son las alternativas de Docker:
- Sometido : Ofrece un motor de contenedor compatible con Docker centrado en la seguridad y la compatibilidad, ideal para entornos donde Docker no es el preferido o no está disponible.
- rt: Un tiempo de ejecución de contenedor liviano desarrollado por CoreOS, diseñado para brindar simplicidad, seguridad y capacidad de composición, y que ofrece una alternativa al tiempo de ejecución de contenedor de Docker.
- LXC (contenedores Linux): Proporciona virtualización a nivel de sistema operativo para ejecutar múltiples sistemas Linux aislados (contenedores) en un solo host, ofreciendo una alternativa liviana a Docker para ciertos casos de uso.
- contenedor: Un tiempo de ejecución de contenedores central estándar de la industria desarrollado por Docker, Inc., que ofrece una plataforma mínima y estable para crear aplicaciones en contenedores, que a menudo se utiliza como una alternativa de nivel inferior a Docker para sistemas de orquestación de contenedores más avanzados como Kubernetes.
Seguridad acoplable
A continuación se detallan algunas ideas sobre la seguridad de Docker:
- Aislamiento : Los contenedores Docker proporcionan un fuerte aislamiento que garantiza la ejecución de las aplicaciones y su procesamiento.
- Infraestructura inmutable : Promueve el uso de infraestructura inmutable, donde los contenedores se crean a partir de imágenes inmutables cuya versión está controlada.
- Limitaciones de recursos: Le permite definir las restricciones de recursos para contenedores, como los límites de CPU y memoria.
- Escaneo de seguridad: Proporciona herramientas de escaneo de seguridad integradas que le permiten escanear las imágenes del contenedor en busca de vulnerabilidades conocidas y malware antes de la implementación.
Conclusión
Ya ha aprendido los conceptos básicos de Docker, la diferencia entre máquinas virtuales y contenedores Docker y algunas terminologías comunes en Docker. Además, revisamos la instalación de Docker en nuestros sistemas. Creamos una aplicación usando Docker y enviamos nuestra imagen a Docker Hub. Por último, aprendimos cómo podemos eliminar una imagen particular de nuestro sistema local y luego extraer la imagen de Docker Hub si no existe localmente.
Docker – Preguntas frecuentes
¿Qué es Docker Hub en resumen?
Docker Hub es un registro público donde los usuarios/desarrolladores pueden almacenar y compartir imágenes del sistema creadas por ellos y hacer que puedan acceder y reutilizar fácilmente las imágenes para otros desarrolladores de software.
¿Qué se necesita para utilizar Docker Hub?
Para utilizar Docker Hub, el usuario debe tener una cuenta en la plataforma Docker Hub. Si no tiene una cuenta en Docker Hub, puede crear una registrándose. Una vez que tenga una cuenta en Docker, podrá realizar operaciones como enviar y extraer imágenes hacia y desde Docker Hub.
¿Qué son los registros de Docker?
El demonio Docker y los contenedores Docker generarán los registros de Docker en forma de mensajes de texto, lo que le ayudará a solucionar problemas, monitorear el rendimiento de sus aplicaciones y recopilar información sobre el estado de su entorno Docker.
¿Qué es Docker Build?
Docker build es un comando que se utiliza para crear la imagen de Docker mediante Dockerfile.
¿Qué es Docker Ubuntu?
Docker Ubuntu es el término utilizado para utilizar el servicio Docker con sistemas operativos basados en Ubuntu. La ejecución de Docker es más adecuada para la popular distribución de Linux Ubuntu.