Docker es una herramienta de virtualizacion que permite a sus usuarios ejecutar aplicaciones y/o servicios en un entorno virtualizado al nivel del sistema operativo.
Esto, en criollo, significa que se le da a uno el poder de ejecutar aplicaciones sin necesidad de alterar al sistema operativo principal en ningun aspecto (virtualizado).
No es lo mismo que uno instale Python en su PC, modificando y alterando a su propio sistema operativo para poder utilizarlo, a lo que hace Docker que es virtualizarlo dentro de la PC del usuario. Esto aisla a Python de la computadora principal, haciendo que sea ejecutado en un entorno controlado del cual el sistema operativo principal no modifica nada para posibilitar mas que alojarle recursos.
Sabiendo el poder de la virtualizacion que brinda Docker como herramienta, que se puede hacer con el?
Cuando uno desarrolla aplicaciones, necesita hacer lo que se llama "emulacion de produccion" o mas conocido como entorno de desarrollo. Esto significa que la aplicacion misma disponga de otras aplicaciones o servicios (bases de datos, servicios de terceros) en un entorno local para poder probarla y asegurarse que esta:
- Se comunica correctamente con la base de datos (o las multiples bases de datos).
- Puede interactuar con los otros servicios de los cuales depende.
- Las funcionalidades programadas en el software que necesitan de servicios externos funcionan correctamente.
Este entorno de desarrollo preparado sirve para prender o apagar las dependencias de tu software cuando desees, sin preocuparte de romper alguna instalacion dentro de tu sistema operativo principal.
Inicia un contenedor a partir de una imagen especificada.
# Ejecuta un contenedor con la imagen "hello-world".
$ docker run hello-world
# Ejecuta un contenedor con la imagen "hello-world" y le da el nombre "hw-container" al contenedor resultante.
$ docker run --name hw-container hello-world
# Ejecuta un contenedor con la imagen "hello-world", le da el nombre "hw-container" al contenedor resultante y se desliga de la terminal (para que corra en el fondo sin que dependa de nuestra terminal)
$ docker run -d --name hw-container hello-world
Para mas informacion sobre los parametros del comando run
, escribe docker run --help
.
Descarga una imagen desde Docker Hub o un registro de Docker disponible al publico/accesible.
# Descarga la imagen de Ubuntu desde Docker Hub.
$ docker pull ubuntu
# Descarga la imagen de Ubuntu (del tag jammy, generalmente una version especifica de la imagen) desde Docker Hub.
$ docker pull ubuntu:jammy
Para mas informacion sobre los parametros del comando pull
, escribe docker pull --help
.
Lista los contenedores en ejecución.
# Muestra los contenedores que están actualmente en ejecución.
$ docker ps
# Muestra TODOS los contenedores (en ejecución y detenidos).
$ docker ps -a
Para más información sobre los parámetros del comando ps
, escribe docker ps --help
.
Detiene un contenedor en ejecución.
# Detiene el contenedor con el ID especificado o nombre de contenedor.
$ docker stop container_id
# Detiene múltiples contenedores al mismo tiempo especificados por sus IDs/nombres.
$ docker stop container_id1 container_id2
Para más información sobre los parámetros del comando stop
, escribe docker stop --help
.
Inicia un contenedor detenido.
# Inicia el contenedor con el ID especificado o el nombre de contenedor.
$ docker start container_id
# Inicia múltiples contenedores especificados por sus IDs/nombres.
$ docker start container_id1 container_id2
Para más información sobre los parámetros del comando start
, escribe docker start --help
.
Elimina un contenedor. Esto no es lo mismo que eliminar una imagen.
# Elimina el contenedor con el ID especificado o nombre.
$ docker rm container_id
# Elimina múltiples contenedores especificados por sus IDs/nombres.
$ docker rm container_id1 container_id2
Lista las imágenes descargadas en el sistema. Esto lo puedes usar para ver si ya tienes una imagen descargada en tu PC.
# Muestra todas las imágenes disponibles en el sistema local.
$ docker images
Para más información sobre los parámetros del comando images
, escribe docker images --help
.
Proximamente cuando veamos el levantamiento de una base de datos se entendera como se utiliza Docker bien en un entorno real.