Índice
Concéntrese en escribir código sin preocuparse por la gestión del entorno
Eso funciona en mi máquina, ¡enviemos su máquina entonces! Eso es Docker en pocas palabras. Nos permite ejecutar una aplicación desde una imagen de Docker en cualquier computadora usando tecnología de contenedores.
Un contenedor Docker es un paquete de un sistema operativo base ( alpine , ubuntu , etc.) y otras dependencias de software necesarias, que puede definir dentro de una imagen de Docker.
Ahora puede usar esa imagen para crear un contenedor para ejecutar su aplicación en diferentes máquinas o incluso en las plataformas en la nube ( AWS , GCP , Azure , etc.) sin preocuparse por la gestión del entorno (desarrollo, pruebas y producción).
Docke r es una de las herramientas populares para DevOps por su portabilidad, seguridad y rendimiento. En esta publicación, aprenderá algunos conceptos y comandos básicos de Docker que le enseñarán cómo montar un directorio dentro de un contenedor de Docker.
Utilizo Docker casi todos los días para el desarrollo local; por ejemplo, puedes ver como he acoplado una aplicación de Ruby on Rails para un proyecto personal, aquí .
Preparar
Primero, necesitará instalar Docker. Para fines de demostración, usaremos la imagen oficial prediseñada de Ruby y macOS.
- Imagen de Docker: Es una plantilla que contiene instrucciones para crear contenedores.
- Contenedor Docker: Un contenedor es la instancia en ejecución de una imagen.
Los docker run
El comando se usa para ejecutar un contenedor desde una imagen. Aquí estamos usando la imagen de ruby para crear el contenedor, pero puedes usar tu propia imagen. Si la imagen ruby no existe en la máquina host, Docker la extraerá de Docker Hub.
Una vez descargado en su máquina local, Docker usa la misma imagen para la creación de contenedores consecutivos. Para montar un volumen, simplemente ejecute esta línea en su terminal
docker run -v /host/directory:/container/directory
Ahora va a montar la carpeta de scripts dentro de la carpeta de scripts del contenedor. Esta es la mejor práctica porque no tiene que preocuparse por la gestión del entorno en diferentes máquinas.
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
Las banderas -i -t
(a menudo escrito como -it
) se utiliza para acceder al contenedor en modo interactivo. los --rm
flag (opcional) elimina el contenedor cuando sale o lo detiene para liberar recursos del sistema (CPU, memoria).
Si no lo usa después de detener o salir del contenedor, debe eliminarlo manualmente si desea liberar espacio en el disco. La bandera -v
se utiliza para montar una carpeta de host y consta de dos campos separados por dos puntos.
La primera parte es la ruta en la máquina host. La segunda parte es la ruta en el contenedor.
-v /host/directory:/container/directory
Los flag --name
(opcional) se usa para darle al contenedor un nombre específico. Si no desea proporcionar uno, Docker asignará un nombre al azar , por lo que es posible que desee elegir uno específicamente si desea realizar un seguimiento de sus contenedores más fácilmente.
El comando ruby
se usa para cargar la imagen. Si desea utilizar el 2.5
versión de Rubí específicamente, use el ruby:2.5
mando.
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby:2.5 bash
Por último, pero no menos importante, el comando bash
se usa para obtener un shell bash
dentro del contenedor.
Para ejecutar código Python, use la imagen de Python.
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts python bash
Como expliqué anteriormente, si desea liberar recursos del sistema y espacio en disco, debe detener y eliminar contenedores. Tu puedes correr el comando docker ps
en la máquina host para ver una lista de sus contenedores en ejecución.
Para detener un contenedor, use el docker stop
comando con el ID del contenedor o el nombre del contenedor. Puedes usar el -a
bandera para ver todos los contenedores detenidos o salidos.
docker stop d61f09eb42ad # or docker stop scripts
Para eliminar manualmente un contenedor, use uno de los siguientes comandos.
docker rm d61f09eb42ad # or docker rm scripts
En el caso de que desee eliminar una imagen para liberar espacio en el disco , por ejemplo, la imagen de Ruby que acaba de crear, utilice el docker rmi
mando. Pero primero, intentemos entender qué está pasando bajo el capó.
Para eso usaremos los comandos docker images
y docker system df
para mostrar información sobre el uso de espacio en disco por parte de Docker Daemon. El comando docker images
enumera todas las imágenes que tiene en su máquina.
El comando docker system df
me dice que solo puedo reclamar el 65%
del espacio en disco porque todavía estoy ejecutando el contenedor scripts
y ese contenedor está usando la imagen ruby. Si agrega las dos imágenes restantes, obtendrá el 65%
de espacio en disco recuperable.
933MB (python) + 643MB (java) = 1.576GB (65%)
Muy bien, ejecutando el comando docker system df
después de detener el contenedor nos dice que ahora podemos reclamar el 100% del espacio en disco.
Tenga en cuenta que si intenta eliminar una imagen que está siendo utilizada por un contenedor, obtendrá el siguiente error.
Error response from daemon: conflict: unable to delete 121862ceb25f (cannot be forced) — image is being used by running container d61f09eb42ad
Finalmente, podemos usar el comando docker rmi
con la identificación de la imagen para eliminar una imagen.
docker rmi 121862ceb25f # remove multiple images by putting a space between them docker rmi efdecc2e377a d23bdf5b1b1b
Para concluir
Ahora ya sabes cómo montar un directorio dentro de un contenedor docker. Docker me ayuda inmensamente a crear entornos de desarrollo local fácilmente en múltiples máquinas sin ningún esfuerzo y tiempo extra.
Es una habilidad que quieres mantener en tu bolsa tanto para propósitos personales como industriales. Espero que esto te ayude a empezar a conocer el mágico mundo de Docker.
Espero que te sirva, gracias por leer este post.
Añadir comentario