Crear un directorio con el comando Mkdir en un contenedor con Dockerfile

Isaac Tony 15 febrero 2024
Crear un directorio con el comando Mkdir en un contenedor con Dockerfile

Los contenedores Docker se han convertido en la forma de facto de administrar software y dependencias en diferentes entornos. Cuando trabaje con aplicaciones reales, no hay duda de que necesitará crear un Dockerfile antes de poder construir la imagen del contenedor de sus aplicaciones.

Crear directorio con el comando mkdir en un contenedor con Dockerfile

Además de simplemente permitir a los desarrolladores ensamblar los comandos necesarios para crear imágenes de Docker, hay mucho más que podemos hacer con los Dockerfiles. Para crear con éxito una imagen de Docker usando un Dockerfile, debe conocer algunos comandos básicos.

Algunos de los comandos más utilizados incluyen:

  1. DESDE: crea una capa de la imagen principal/imagen base que se utilizará.
  2. WORKDIR - nos permite configurar el directorio de trabajo.
  3. COPIAR: nos permite copiar el contenido del directorio actual en un directorio del contenedor.
  4. PULL: agrega archivos de su repositorio de Docker.
  5. EJECUTAR - Comando a ejecutar cuando queramos construir la imagen.
  6. CMD: especifica qué comando ejecutar cuando se inicia el contenedor.
  7. ENV: define las variables ambientales utilizadas durante la construcción.
  8. ENTRYPOINT: especifica qué comando ejecutar cuando se inicia el contenedor.
  9. MANTENEDOR - Especifica el autor de la imagen.

Usando los comandos anteriores, podemos crear un Dockerfile como el que se muestra a continuación que usa Python como imagen base.

Código:

#  base image
FROM Python

# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
COPY ./requirements.txt /var/www/requirements.txt

# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
# Run the app
CMD ["echo", "Hello, Developer"]

Este Dockerfile es parte de una aplicación Flask simple que solo imprime un mensaje en la consola. Aquí está el archivo requirements.txt si está interesado en crear la misma aplicación.

click==8.0.4
Flask==2.0.3
gunicorn==20.1.0
itsdangerous==2.1.0
Jinja2==3.0.3
MarkupSafe==2.1.0
Werkzeug==2.0.3

El archivo principal app.py que contiene ese archivo de aplicación principal se muestra a continuación.

Código:

from flask import Flask

app = Flask(__name__)


def hello():

    print("Hello, this is a simple Flask application")


hello()

Ahora, para crear un directorio con el comando mkdir dentro del sistema de archivos de nuestro contenedor Docker, usaremos el comando EJECUTAR como se muestra a continuación.

#  base image
FROM Python

# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
COPY ./requirements.txt /var/www/requirements.txt

# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
RUN mkdir -p /var/www/new_directory
# Run the app
CMD ["echo", "Hello, Developer"]

El comando EJECUTAR mkdir -p /var/www/nuevo_directorio le permite crear un directorio llamado nuevo_directorio dentro del sistema de archivos Docker que eventualmente construiremos usando una imagen creada usando el archivo Docker anterior.

Sin embargo, comenzaremos creando una imagen de Docker basada en Python como imagen base ejecutando el siguiente comando.

isaac@DESKTOP-HV44HT6:~/my-app$ docker build -t new_image .

Producción:

ventana acoplable construir nueva imagen

Confirme que hemos creado correctamente una imagen de Docker a partir del archivo de Docker utilizando el comando imágenes de Docker a continuación.

$ docker images

Producción :

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
new_image    latest    7ab964c50876   13 minutes ago   932MB

Ahora que tenemos una imagen de Docker en su lugar, podemos continuar y crear un contenedor de Docker y confirmar si se creó el directorio llamado nuevo_directorio. Como se muestra a continuación, necesitaremos ejecutar Bash dentro del contenedor para navegar por los directorios dentro del contenedor Docker.

$ docker run -it new_image bash
root@ea42f35d5404:/var/www#

Notará que el nuevo_directorio se creó después de enumerar los archivos en este directorio. Además de esto, también podemos navegar por el propio directorio e incluso crear nuevos archivos dentro de él.

root@ea42f35d5404:/var/www# ls
app.py  new_directory  requirements.txt
root@ea42f35d5404:/var/www# cd new_directory
root@ea42f35d5404:/var/www/new_directory# ls
root@ea42f35d5404:/var/www/new_directory# touch new_file
root@ea42f35d5404:/var/www/new_directory# ls
new_file
Autor: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

Artículo relacionado - Docker Directory