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:
DESDE
: crea una capa de la imagen principal/imagen base que se utilizará.WORKDIR
- nos permite configurar el directorio de trabajo.COPIAR
: nos permite copiar el contenido del directorio actual en un directorio del contenedor.PULL
: agrega archivos de su repositorio de Docker.EJECUTAR
- Comando a ejecutar cuando queramos construir la imagen.CMD
: especifica qué comando ejecutar cuando se inicia el contenedor.ENV
: define las variables ambientales utilizadas durante la construcción.ENTRYPOINT
: especifica qué comando ejecutar cuando se inicia el contenedor.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:
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
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