LINUX

Cómo crear un contenedor Docker usando Dockerfile

Este artículo trata sobre cómo podemos usar un Dockerfile para crear un contenedor Docker. Entonces, aquí hay una breve introducción sobre lo que realmente es un contenedor y un Dockerfile.

Una vez que iniciamos un proceso en Estibador a partir de una imagen, Docker obtiene la imagen y su imagen principal, y repite el proceso hasta que llega a la imagen base. Luego, Union File System agrega una capa de lectura y escritura en la parte superior. Esa capa de lectura y escritura, la información sobre su imagen principal y alguna otra información como su identificación única, configuración de red y límites de recursos se llama contenedor. Los contenedores tienen estados, ya que pueden cambiar de estado en ejecución a estado de salida. Un contenedor con estado en ejecución incluye un árbol de procesos que se ejecutan en la CPU, aislado de los otros procesos que se ejecutan en el host, donde se sale del estado del sistema de archivos y se conserva su valor de salida. Puede iniciar, detener y reiniciar un contenedor con él.

Busyboxrw de sistemas de archivos Docker

A Dockerfile es un archivo de texto / script, compuesto por varios comandos y argumentos enumerados sucesivamente para realizar acciones automáticamente en una imagen base para crear una nueva. Nos ayuda a evitar emitir el comando cada vez que se ejecuta el contenedor. Se utilizan para organizar cosas y ayudan mucho con las implementaciones al simplificar el proceso de principio a fin. Comienza con la definición de una imagen A PARTIR de la cual comienza el proceso de compilación y proporciona una nueva imagen con los comandos y argumentos necesarios que se utilizará para crear contenedores Docker.

Entonces, aquí hay pasos rápidos y fáciles sobre cómo podemos usar un Dockerfile para crear un contenedor Docker.

1. Comandos de Docker

Entonces, antes de comenzar a crear nuestro Dockerfile, necesitamos aprender los comandos necesarios para crear un Dockerfile funcional. Hay docenas de comandos que se pueden usar para crearlo, pero aprenderemos rápidamente sobre esos comandos.

AGREGAR

El comando Agregar se usa para copiar los archivos de un directorio de origen al destino, el origen también puede ser una URL. Si es una URL, el comando simplemente descargará el destino al directorio de destino.

CMD

El comando CMD se usa para ejecutar comandos específicos que se ejecutan con la creación de contenedores basados ​​en la imagen. Es muy similar al comando RUN, mientras que CMD no se ejecuta durante la compilación.

PUNTO DE ENTRADA

El argumento ENTRYPOINT establece la aplicación predeterminada concreta que se utiliza cada vez que se crea un contenedor utilizando la imagen.

ENV

ENV se utiliza para establecer las variables de entorno. Se puede acceder a estas variables con el contenedor de la ventana acoplable que ofrece una enorme cantidad de flexibilidad para ejecutar programas.

DESDE

El argumento FROM define la imagen base que se utilizará para iniciar el proceso de compilación, que puede ser cualquier imagen de la ventana acoplable, ya sea en el host o en el repositorio.

WORKDIR

La directiva WORKDIR se utiliza para establecer dónde se ejecutará el comando definido con CMD.

CORRER

RUN es el comando que se utiliza para crear las imágenes de la ventana acoplable, que es una directiva de ejecución centralizada para los archivos Docker.

MANTENIMIENTO

MAINTAINER es el comando que no se ejecuta pero declara el autor, por lo tanto, establece el campo de autor de las imágenes.

USUARIO

La directiva USER se utiliza para establecer el UID (o nombre de usuario) que ejecutará el contenedor en función de la imagen que se está construyendo.

VOLUMEN

El comando VOLUME se usa para permitir el acceso desde su contenedor a un directorio en la máquina host.

EXPONER

El comando EXPOSE se usa para asociar un puerto específico para habilitar la red entre el proceso en ejecución dentro del contenedor y el host.

2. Creando un Dockerfile

Después de aprender sobre los comandos necesarios para construir nuestro contenedor requerido, finalmente nos ensuciaremos las manos con la creación de un Dockerfile para hacer nuestro trabajo. Aquí, crearemos un Dockerfile para crear una imagen para instalar el contenedor del servidor web Nginx. Para eso, necesitaremos crear un archivo llamado Dockerfile con nuestro editor de texto favorito.

$ sudo nano Dockerfile

Luego, querremos agregar nuestra configuración de Docker que incluye los comandos y argumentos para el contenedor del servidor web Nginx.

# Pull base image.
FROM dockerfile/ubuntu

# Install Nginx.
RUN 
add-apt-repository -y ppa:nginx/stable && 
apt-get update && 
apt-get install -y nginx && 
rm -rf /var/lib/apt/lists/* && 
echo "ndaemon off;" >> /etc/nginx/nginx.conf && 
chown -R www-data:www-data /var/lib/nginx

# Define mountable directories.
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]

# Define working directory.
WORKDIR /etc/nginx

# Define default command.
CMD ["nginx"]

# Expose ports.
EXPOSE 80
EXPOSE 443

Imagen de Nginx Dockerfile

Después de obtener los archivos con los comandos anteriores, queremos guardar el archivo y salir para ejecutar ese Dockerfile.

3. Construyendo una imagen usando Dockerfile

Ahora, después de que terminemos de crear nuestro Dockerfile para el contenedor del servidor web Nginx, finalmente crearemos una imagen usando ese Dockerfile. Para construir una imagen, necesitaremos ejecutar el siguiente comando en nuestro directorio base de trabajo.

# sudo docker build -t my_nginx .

Creación de una imagen de Nginx

El comando anterior creará una imagen llamada my_nginx usando el Dockerfile creado.

4. Creación de un contenedor Docker

Usando la imagen que acabamos de construir, ahora procederemos al paso final de la creación de un contenedor que ejecute una instancia del servidor web Nginx en su interior, usando un nombre de nuestra elección. Aquí está my_nginx_instance.

# docker run --name my_nginx_instance -p 80:80 -d my_nginx

Ejecución de contenedor Docker

Finalmente, hemos creado nuestro Contenedor Nginx y se reenvía al puerto 80. Ahora para verificar si está funcionando correctamente o no, podemos ejecutar docker ps.

# docker ps

Listado de contenedores de Docker

Conclusión

En este tutorial, aprendimos cómo podemos crear y usar un Dockerfile para crear un contenedor de Docker. Docker Container es fácil de construir después de que averigüemos qué debe ir dentro del Dockerfile. Dockerfile es la parte más importante en la construcción del contenedor porque es responsable de la configuración en el contenedor. Por lo tanto, si tiene alguna pregunta, sugerencia o comentario, escríbalo en el cuadro de comentarios a continuación para que podamos mejorar o actualizar nuestro contenido. Gracias ! Disfrutar 🙂

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar