GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Dockerfiles

Un Dockerfile es la receta para crear una imagen de Docker.

Este es el flujo de trabajo:primero creas un Dockerfile, luego creas una imagen de Docker a partir de él usando docker build y, finalmente, ejecuta un contenedor desde la imagen.

Un Dockerfile es un archivo de texto con instrucciones sobre cómo crear una imagen.

Esas instrucciones son parte de un lenguaje de configuración, que incluye palabras clave como FROM , LABEL , RUN , COPY , ENTRYPOINT , CMD , EXPOSE , ENV y más.

Creemos nuestro primer Dockerfile:

Supongamos que tiene una carpeta con una aplicación Node.js simple compuesta por un app.js , un package.json archivo que enumera un par de dependencias que necesita instalar antes de ejecutar la aplicación, y package-lock.json .

En su interior, cree un archivo de texto sin formato llamado Dockerfile , sin extensión, con este contenido:

FROM node:14
WORKDIR /usr/src/app
COPY package*.json app.js ./
RUN npm install
EXPOSE 3000
CMD ["node", "app.js"]

NOTA:use comillas dobles en el CMD línea. Las comillas simples darán como resultado un error.

En la primera línea decimos desde qué imagen queremos empezar. Esta será nuestra imagen base. En este caso, tomará la imagen oficial de Node.js, basada en Alpine Linux, utilizando Node 14. Al crear un contenedor desde Dockerfile, Docker obtendrá esa imagen de Docker Hub.

A continuación, establecemos el directorio de trabajo en /usr/src/app , lo que significa que todos nuestros comandos se ejecutarán en esa carpeta hasta que la cambiemos nuevamente. Esa es una carpeta que sabemos que ya existe en la imagen del nodo.

Copiamos el package.json , package-lock.json (usando el * comodín) y app.js archivos que están presentes en la carpeta actual, en el directorio de trabajo.

Ejecutamos npm install para instalar los paquetes enumerados en package.json archivo.

Luego exponemos el puerto 3000 al exterior, ya que en eso se ejecuta nuestra aplicación. Un contenedor está 100 % aislado de la red a menos que exponga uno de sus puertos mediante EXPOSE dominio. Más adelante veremos cómo podemos asignar puertos en nuestra computadora a puertos en un contenedor Docker.

Finalmente ejecutamos node app.js para iniciar la aplicación.

Este es un Dockerfile, y pronto veremos cómo crear un contenedor a partir de él.


Docker
  1. ¿Cómo rotar una imagen en Gs?

  2. Actualización de un contenedor implementado en función de una imagen de Docker

  3. Cómo confirmar cambios en una imagen de Docker

  4. Crear una copia de seguridad de la imagen (clonación)

  5. Optimización de imágenes con webp

Una breve introducción a Dockerfile

¿Qué es un manifiesto de imagen de Docker?

Cómo depurar los errores "ImagePullBackOff" de Kubernetes

Implementar una instalación de MariaDB de Docker de producción

Cómo reducir el tamaño de la imagen de Docker en los contenedores de Docker

Compartir imágenes de Docker en Docker Hub