Una de las mejores formas de automatizar Docker para crear imágenes automáticamente es mediante el uso de un Dockerfile. Un Dockerfile es un documento de texto simple que contiene todos los comandos que un usuario puede llamar en la línea de comandos para ensamblar una imagen.
En este tutorial, le mostraremos un proceso paso a paso para crear un Dockerfile para la aplicación nodeJS, crear Dockerignore y docker-compose.
Creación de un Dockerfile, Dockerignore y Docker Compose
1. Dockerfile
Crearemos el Dockerfile dentro del directorio fuente.
vim Dockerfile
En primer lugar, definir desde qué imagen queremos iniciar la construcción. Aquí he agregado mi imagen de la ventana acoplable de Linux alpine, que incluye nodejs10 y NPM. Siga nuestra imagen de Docker y la guía del concentrador de la ventana acoplable para crear imágenes de la ventana acoplable y llevarlas al centro de la ventana acoplable.
DESDE ddarshana / alpinenode10
El comando MAINTAINER muestra el autor de las imágenes generadas.
MANTENIMIENTO darshana (D.Darshana @ fosslinux.com)
El comando RUN se utiliza para ejecutar cualquier comando. Aquí instalamos un paquete curl en Alpine Linux.
EJECUTAR apk agregar --update curl && rm -rf / var / cache / apk / *
Cree un nuevo directorio llamado Aplicación, que va a contener el código de la aplicación dentro de la imagen.
EJECUTAR mkdir / aplicación
La directiva WORKDIR se usa para establecer dónde se ejecutará el comando definido con CMD.
WORKDIR / aplicación
Copiar paquete.archivo json.
COPIA paquete.json .
Instalar la aplicación y las dependencias de nodeJS.
EJECUTAR npm install
Fuente de la aplicación del paquete.
COPIAR…
Descarga el archivo de la variable de entorno. En nuestro caso, tenemos una ubicación separada para almacenar configuraciones globales.
EJECUTAR curl -O https: // demofiles.fosslinux / nodejs /.env
Ejecute la aplicación y se iniciará en el puerto 3000 predeterminado.
CMD ["npm", "inicio"]
Aquí está nuestro Dockerfile completo.
DESDE ddarshana / alpinenode10 MANTENIMIENTO darshana (D.Darshana @ fosslinux.com) # Instalar el paquete "curl" EJECUTAR apk add --update curl && rm -rf / var / cache / apk / * # Crear directorio de aplicaciones EJECUTAR mkdir / app WORKDIR / app # copiar paquete.paquete COPY json.json . # Instalar las dependencias de la aplicación EJECUTAR npm install # Agrupar la fuente de la aplicación COPY… # Descargar el archivo de la variable de entorno desde nuestra ubicación de red EJECUTAR curl -O https: // demofiles.fosslinux / nodejs /.env # Ejecutar APP CMD ["npm", "start"]
Guardar y salir del archivo. Aquí está mi directorio de códigos de aplicaciones NodeJs.
2. Creando un archivo Dockerignore
El uso del archivo "dockerignore" evita que nuestros módulos locales y otros archivos no deseados se copien en la imagen de Docker y la posibilidad de sobrescribir los módulos instalados dentro de su imagen. Le recomendamos encarecidamente que lo use junto con Dockerfiles.
El archivo Dockerignore debe estar en el mismo directorio que Dockerfile.
empuje .dockerignore
Aquí agregamos los siguientes contenidos:
.prueba de env Dockerfile node_modules .vscode .eslintrc.js
Guardar y salir del archivo.
Crea una imagen de Docker
compilación de docker . -t fosslinuxdemo / nodejsapp
Debería llevar algún tiempo completar el proceso. Por favor sea paciente.
Lista de imágenes de Docker
Ejecute el siguiente comando para listar imágenes:
imágenes de docker
Ejecutar imagen de Docker
Docker ejecutar -itd -p 3000: 3000 fosslinuxdemo / nodejsapp
-itd: - ejecuta el contenedor en segundo plano
-p: - flag redirige un puerto público a un puerto privado dentro del contenedor
4. Docker Compose
Compose es una herramienta para definir y ejecutar aplicaciones Docker de varios contenedores. Con Compose, usaremos un archivo YAML para configurar los servicios de la aplicación. Luego de eso, con un solo comando, crearemos e iniciaremos todos los servicios desde nuestra configuración.
Instalar Redactar
Antes de instalar el compositor, primero debe instalar Docker.
Ejecute este comando para descargar la versión estable actual de Docker Compose:
curl -L "https: // github.com / docker / compose / releases / download / 1.25.0 / docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose
Aplicar permisos ejecutables al binario:
chmod + x / usr / local / bin / docker-compose
Prueba la instalación:
docker-compose --version
5. Instalación de WordPress y MySQL con Docker Compose
Crea una carpeta para tu proyecto:
mkdir / opt / fosslinuxdemo
Vaya al directorio creado:
cd / opt / fosslinuxdemo
Aquí crearemos directorios de datos para nuestro contenedor MySQL y nuestro contenedor de WordPress.
mkdir datos mkdir html
Montaremos los directorios anteriores en nuestros contenedores.
Crea un archivo de redacción:
vim docker-compose.yml
Aquí está nuestro archivo docker-compose. Copie el siguiente contenido a su archivo.
versión: '3.7 'servicios: db: nombre_contenedor: fosslinux-mysql reiniciar: siempre imagen: mysql: 5.7 volúmenes: - / opt / fosslinuxdemo / data: / var / lib / mysql comando: --default-authentication-plugin = mysql_native_password entorno: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress ports: - "3306 redes: - fosslinux_net wp: nombre_contenedor: fosslinux-wp reiniciar: siempre volúmenes: - "/ opt / fosslinuxdemo / html: / var / www / html" depende_on: - imagen db: puertos wordpress: - "80:80" entorno: WORDPRESS_DB_HOST : db: 3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: redes de wordpress: - redes fosslinux_net: fosslinux_net:
Anote el número de versión. Más detalles de la versión del archivo versioning @ composer.
versión: '3.7 '
servicios: db:
Un servicio en Compose es un contenedor en ejecución y las definiciones de servicio especifican información sobre cómo se ejecutará cada contenedor. Nuestra definición de servicio "db" tiene varias opciones.
nombre_contenedor: fosslinux-mysql
- Especifica un nombre para el contenedor
reiniciar: siempre
- Define la política de reinicio del contenedor
imagen: mysql: 5.7
- MySQL 5.7 imagen oficial de la ventana acoplable
- Imagen de Docker oficial de WordPress
volúmenes: https: // hub.estibador.com / _ / mysql - / opt / fosslinuxdemo / data: / var / lib / mysql
Aquí montamos el volumen "/ opt / fosslinuxdemo / data" en el directorio "/ var / lib / mysql" en el contenedor. Generalmente, es el directorio de datos estándar para MySQL en la mayoría de las distribuciones.
comando: --default-authentication-plugin = mysql_native_password
Esta opción especifica un comando para anular la instrucción CMD predeterminada para la imagen.
ambiente:
Definir variables de entorno. Aquí configuramos las variables de MySQL.
puertos: - "3306: 3306"
- La asignación de puertos.
redes: - fosslinux_net
- Define una red para el contenedor
depende_en: - db
Esto representa que nuestros contenedores comenzarán en orden de dependencia, con el contenedor "wp" comenzando después del contenedor "db".
Ahora podemos crear nuestro entorno.
docker-compose up -d
-d, que ejecutará contenedores en segundo plano.
Enumere los contenedores de Docker:
docker ps -a
Verifique los registros del contenedor de WordPress:
registros de Docker -f fosslinux-wp
Ahora vaya al navegador web y escriba su IP para obtener la ventana de instalación de WordPress.
Proceda a hacer clic en, continuar y completar el proceso de instalación de WordPress.
Eso es todo sobre trabajar con Dockerfiles y Docker Compose. Espero que hayas disfrutado el artículo.