Conceptos
Docker es una plataforma para desarrolladores y administradores de sistemas para desarrollar, implementar y ejecutar aplicaciones con contenedores. El uso de contenedores de Linux para implementar aplicaciones se denomina containerization
. Los contenedores no son nuevos, pero su uso para implementar aplicaciones fácilmente sí lo es.
Containerization
es cada vez más popular porque los contenedores son:
Flexibles: incluso las aplicaciones más complejas se pueden contener en contenedores.
Ligeros: los contenedores aprovechan y comparten el núcleo del host.
Intercambiables: pueden implementar actualizaciones y mejoras sobre la marcha.
Portátiles: pueden construir localmente, implementar en la nube y ejecutar en cualquier lugar.
Escalables: pueden aumentar y distribuir automáticamente las réplicas del contenedor.
Apilables: pueden apilar servicios verticalmente y sobre la marcha.
Imágenes y contenedores
Un contenedor se inicia ejecutando una imagen. Una imagen es un paquete ejecutable que incluye todo lo necesario para ejecutar una aplicación: el código, un tiempo de ejecución, bibliotecas, variables de entorno y archivos de configuración.
Un contenedor es una instancia de tiempo de ejecución de una imagen: en qué se convierte la imagen en la memoria cuando se ejecuta (es decir, una imagen con estado o un proceso de usuario). Puede ver una lista de sus contenedores en ejecución con el comando docker ps, tal como lo haría en Linux.
Contenedores y máquinas virtuales
Un contenedor se ejecuta de forma nativa en Linux y comparte el núcleo de la máquina host con otros contenedores. Ejecuta un proceso discreto, no ocupa más memoria que cualquier otro ejecutable, lo que lo hace liviano.
Por el contrario, una máquina virtual (VM) ejecuta un sistema operativo "invitado" completo con acceso virtual a los recursos del host a través de un hipervisor. En general, las máquinas virtuales proporcionan un entorno con más recursos que la mayoría de las aplicaciones necesitan.
Prepare su entorno de trabajo
Instale una versión mantenida de Docker Community Edition (CE) o Enterprise Edition (EE) en una plataforma compatible.
Para la integración completa de Kubernetes
- Kubernetes en Docker Desktop para Mac está disponible en 17.12 Edge (mac45) o 17.12 Stable (mac46) y versiones posteriores.
- Kubernetes en Docker Desktop para Windows está disponible en 18.06.0 CE (win70) y superior.
Test Docker version
-
Ejecute
docker --version
y asegúrese de tener una versión compatible de Docker:Docker version 17.12.0-ce, build c97c6d6
-
Ejecute
docker info
para ver aún más detalles sobre su instalación de Docker:Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 17.12.0-ce
Storage Driver: overlay2
...
Test instalación de Docker
- Comprueba que tu instalación funciona ejecutando la simple imagen de Docker, hello-world:
docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
- Enumere la imagen de hello-world que se descargó a su máquina:
docker image ls
- Liste el contenedor hello-world (generado por la imagen) que sale después de mostrar su mensaje. Si todavía se estuviera ejecutando, no necesitaría la opción --all:
docker container ls --all
CONTAINER ID IMAGE COMMAND CREATED STATUS
54f4984ed6a8 hello-world "/hello" 20 seconds ago Exited (0) 19 seconds ago
Resumen y hoja de trucos
## List Docker CLI commands
docker
docker container --help
## Display Docker version and info
docker --version
docker version
docker info
## Execute Docker image
docker run hello-world
## List Docker images
docker image ls
## List Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls --all
docker container ls -aq
Conclusión
En la Containerization
el CI / CD se ven beneficiados de los siguientes aspectos:
- Las aplicaciones no tienen dependencias del sistema.
- Las actualizaciones se pueden enviar a cualquier parte de una aplicación distribuida.
- La densidad de recursos se puede optimizar.
- Con Docker, escalar su aplicación es cuestión de girar nuevos ejecutables, no ejecutar hosts VM pesados.
Top comments (0)