Un Dockerfile es un documento de texto que contiene todos los comandos que un usuario podría llamar en la línea de comandos para ensamblar una imagen. Es algo así como un shellscript que reúne múltiples comandos en un solo documento para realizar una sola tarea.
Requisito previo: antes de poder dockerizar cualquier aplicación, debe instalar Docker Engine en función de su sistema operativo. Vaya a https://docs.docker.com/engine/install/ para instalar Docker Engine. Descárguelo según su sistema operativo.
Comandos : Comandos básicos que tenemos que saber mientras escribimos un Dockerfile.
- WORKDIR : Se utiliza para especificar la ruta de trabajo, es decir en el archivo de imagen, actualmente estamos en /app
- COPIAR: Se utiliza para copiar los archivos del proyecto en el archivo de imagen.
- EJECUTAR: ahora los archivos de imagen que tienen el entorno Node.js, así como los archivos de paquete.json, luego podemos ejecutar npm, instalar las dependencias de todo el kit y también empaquetarlas en el archivo de imagen.
- EXPONE: Al usar el contenedor, puede imaginar que es una máquina cerrada, por lo que debemos establecer un canal de comunicación con el exterior. Aquí configuramos el puerto 8081, que es nuestro puerto habitual.
- CMD: Se utiliza para establecer la forma de iniciar la imagen.
- PULL: se utiliza para agregar archivos desde su repositorio de Docker.
- VOLUMEN: se utiliza para crear un punto de montaje de directorio para acceder y almacenar datos persistentes.
- ARG: Se utiliza para definir la variable de tiempo de construcción.
- DOCKER BUILD: se usa para construir el comando se usa para crear una imagen desde el Dockerfile.
- DOCKER PUSH: se utiliza para enviar una imagen a su repositorio Docker.
Vamos a crear un DockerFile simple mediante la creación de una aplicación express de muestra.
Paso 1: Cree una aplicación NodeJs de muestra a través del marco Express.
npm init
Paso 2: agreguemos el marco Express como la primera dependencia ejecutando el siguiente comando.
npm i express -s
Paso 3: podemos crear un archivo server_init.js con un servidor http simple.
server_init.js
// Load express module using `require` directive let express = require('express') let app = express() // Define request response in root URL (/) app.get('/', function (req, res) { res.send('Dockerize the node app') }) // Launch listening server on port 8081 app.listen(8081, function () { console.log('app listening on port 8081') })
Paso para ejecutar la aplicación: Abra la terminal y escriba el siguiente comando.
node server_init.js
Vaya a http://localhost:8081/ en su navegador para verlo.
Ahora vamos a crear un archivo acoplable para el ejemplo anterior:
Paso 1: Avancemos y creemos un Dockerfile para nuestra aplicación de demostración en la raíz del proyecto.
touch Dockerfile
Paso 2: Abra el Dockerfile y agregue los pasos a continuación. Cada Dockerfile debe comenzar con la instrucción FROM. La idea detrás de esto es que necesitas un punto de partida para construir tu imagen. Puede iniciar sus imágenes de Docker desde cualquier imagen válida que extraiga de los registros públicos. La imagen de la que parte se llama imagen base. En nuestro caso, agreguemos FROM node:12.16-alpine al Dockerfile.
FROM node:12.16-alpine
Paso 3: cree el directorio en el contenedor y usaremos este directorio para almacenar archivos, ejecutar NPM e iniciar nuestra aplicación:
RUN mkdir node COPY . ./node WORKDIR ./node/
Paso 4: instale todas las dependencias de NodeJs con el siguiente comando
RUN npm install
Paso 5: En el ejemplo de la aplicación, estamos ejecutando nuestra aplicación NodeJs en el puerto 8081.
EXPOSE 8081
Paso 6: Inicie nuestra aplicación NodeJs con el siguiente comando.
CMD node server_init.js
Paso 7: Cree la imagen de Docker. El comando para ejecutar nuestra aplicación es
docker build -t hello-world .
Paso 8: Podemos encontrar la imagen de la ventana acoplable que hemos creado.
docker image ls
Ejecute la aplicación con el siguiente comando
docker run -p 8081:8081 hello-world
Salida: cuando ejecutamos los pasos de compilación de la ventana acoplable que hemos escrito en el archivo de la ventana acoplable, se ejecutarán. Abra el navegador y abra localhost: 8081
Push To ContainerRegistry: podemos enviar la imagen a nuestro registro público o privado. Solo tres sencillos pasos para enviar una imagen a Dockerhub
docker login --username username --password yourpassword docker tag localimagename username/repositoryname:tagname docker push username/repositoryname:tagname
Publicación traducida automáticamente
Artículo escrito por divyamovva9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA