noticias
Serverspace Tecnologías en los Emiratos Árabes Unidos: lanzamiento de Falconcloud
VB
13 de septiembre de 2023
Actualizado el 13 de septiembre, 2023

Docker para principiantes

Docker Preguntas Frecuentes

In uno de los artículos anteriores, exploramos el proceso de ejecutar un Docker contenedor a partir de una imagen. DockerEl concepto principal de gira en torno a que cada proceso individual tenga su propio contenedor dedicado con el entorno necesario adaptado a sus necesidades específicas. Sin embargo, cuando se trata de aplicaciones complejas, surge un desafío.
Considere una aplicación web que requiere una base de datos, un servidor web y potencialmente un intérprete PHP. Esto ya implica administrar tres contenedores separados, y resulta inconveniente configurarlos y ejecutarlos manualmente de forma individual. Para abordar esta cuestión, el "dockerSe introdujo la utilidad -compose". Permite la gestión de grupos de contenedores, facilitando su creación, configuración y eliminación con un solo comando. Este tutorial tiene como objetivo presentar Docker para principiantes, centrándose en el uso práctico de docker-componer.

Docker-componer configuración

En primer lugar, debes instalar el conjunto de paquetes 'base':

apt-get update && apt-get install -y ca-certificates curl gnupg && sudo install -m 0755 -d /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg && chmod a+r /etc/apt/keyrings/docker.gpg

pic1

echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

pic2

apt-get update && apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

pic3

El proceso adicional es muy simple, basta con descargar el archivo precompilado:

curl -L "https://github.com/docker/compose/releases/download/1.27.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

pic4

Luego conceda permisos de ejecución:

chmod +x /usr/local/bin/docker-compose

pic2

Luego, verifique la versión del paquete:

docker-compose --version

pic3

Creando un proyecto

Si ha trabajado o visto proyectos utilizando Docker, habrás notado que hay un docker-componer archivo en la carpeta del proyecto.yaml". Es en este archivo donde se configuran los contenedores que deben crearse para su proyecto. Se crearán automáticamente usando docker-componer. El archivo utiliza sintaxis YAML y debe contener los siguientes datos:

version: 'file_version'
networks: 'used_networks'
volumes: 'used_storages'
services: 'used_containers'

La versión indica la versión de sintaxis del archivo, diferentes versiones tienen diferentes palabras clave disponibles, lo cual se hace por compatibilidad con versiones anteriores. Usaremos la versión 3.5. A continuación, debemos enumerar los volúmenes, las redes y los propios contenedores.
La sintaxis de YAML es similar a JSON, hay pares clave-valor separados por dos puntos, pero aquí el valor puede estar completamente vacío, puede contener otras claves y también puede ser una matriz de valores, en cuyo caso cada elemento de la matriz comienza con un estrellarse "-". Pero a diferencia de JSON, la sangría aquí es muy importante para mostrar el anidamiento de valores, así que no te los pierdas.
Creemos una carpeta llamada 'serverspace-docker' y crea un archivo llamado 'docker-compose.yaml' dentro de él:

mkdir /opt/serverspace-docker && nano /opt/docker-compose.yaml

Y pon este código dentro:

version: '3.5'
services: docker-nginx: image: nginx

pic5

Basta con ejecutar el contenedor.

Contenedores en ejecución

Para iniciar un grupo de contenedores configurados en docker-compose.yaml, debe navegar a la carpeta donde se encuentra este archivo de configuración y ejecutar el comando docker-componer allí. Por ejemplo:

cd /opt/serverspace-docker/
docker-compose up

pic9

Después de eso, se lanzarán los contenedores, sus flujos de salida se fusionarán en uno y verá información en la terminal. Para detener los contenedores, simplemente presione Ctrl+C. Si desea ejecutar los contenedores en segundo plano, utilice el -d opción:

docker-compose up -d

pic10

Para detener la ejecución de contenedores en segundo plano, puede utilizar el docker-componer parada mando:

pic11

El docker-componer El comando no solo detiene todos los contenedores en ejecución sino que también los elimina:

pic12

Reenvío de puertos de contenedores

El contenedor está funcionando, pero de momento nos sirve de poco. Con Docker, podemos reenviar el puerto 80 del contenedor al sistema operativo host y obtener acceso a él. Para hacer esto, use el 'puertos'directiva. La sintaxis es la siguiente:

ports:
- external_port:internal_port

Entonces, reenviemos el puerto 80 al 8098.

pic13

Como resultado podemos abrir nginx en el puerto 'externo':

pic14

Carpetas de montaje

Para montar almacenamiento externo o carpetas de host en el contenedor, se utiliza la sección "volúmenes". La sintaxis es muy similar a trabajar con puertos:

volumes:
- /path/to/external/folder:/path/to/internal/folder

Creemos un archivo llamado "index.html" en la carpeta del proyecto actual y montemos esta carpeta en lugar del "/usr/share/" del contenedor.nginx/html/" carpeta:

echo "You're the best!" > index.html

pic15

Y agregue la directiva de montaje de carpetas al docker-componer archivo:

pic16

Después de reiniciar el contenedor, verá su propia página en el navegador.

pic17

Configurar volúmenes

Podemos montar no sólo carpetas externas sino también volúmenes creados en Docker al contenedor. Para hacer esto, primero debe agregar el volumen a la sección principal de "volúmenes". Por ejemplo, "serverspace-vl". La mayoría de las aplicaciones web requieren una base de datos, como MySQL. Agreguemos otro contenedor para esta base de datos y agreguemosle nuestro volumen. El volumen se agrega de la misma manera que una carpeta externa, excepto que en lugar de una carpeta, se especifica el nombre del volumen. agreguemos MySQL a nuestra configuración:


docker-mysql:
image: mysql
volumes:
- serverspace-vl:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=VeryStr0ngPassword
- MYSQL_DATABASE=database
- MYSQL_USER=user
- MYSQL_PASSWORD=AnotherPassw0rd

Aquí, también agregamos la sección "entorno" donde configuramos variables de entorno para el contenedor. Son necesarios para especificar el nombre de la base de datos predeterminada y la contraseña de root.

pic18

 

Configurando redes

Los contenedores necesitan comunicarse entre sí. Nosotros ya tenemos Nginx y MySQLy no necesitan comunicarse entre sí todavía. Pero una vez que tengamos un contenedor para PhpMyAdmin, que necesita acceder a MariaDB, la situación cambiará. Las redes virtuales se utilizan para la comunicación entre contenedores y se pueden agregar de manera similar a los volúmenes. Primero, agregue la red al " principal "telecomunicaciones " sección:

networks:
serverspace-network:

Luego, agregue esta red para cada contenedor que necesite acceso "externo". Posteriormente, los contenedores estarán disponibles en la red por sus nombres. Por ejemplo, agreguemos PhpMyAdmin y démosle acceso a la base de datos:


docker-phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
- "8099:80"
environment:
- PMA_HOST=docker-mysql
networks:
- serverspace-network

Aquí, en la variable PMA_HOST, nos referimos a "docker-mysql" host, al que se puede acceder gracias a la red compartida entre estos contenedores. De manera similar, en el "docker-mysql" contenedor, se puede acceder a nuestro contenedor PhpMyAdmin como "docker-phpmyadmin". Puedes abrir la dirección http://docker-server:8099 y autenticarse para comprobar si la base de datos está funcionando.

pic19

Conexión a un contenedor

Con docker-compose, puede conectarse a cualquier contenedor del grupo. Simplemente use el ejecutivo dominio. Por ejemplo, inicie el proyecto en segundo plano:

docker-compose up -d

Luego vamos a conectarnos al contenedor con Nginx:

docker-compose exec docker-nginx /bin/bash

pic20

Conclusiones

En este artículo, cubrimos el uso de Docker para principiantes. También describimos cómo usar algunos docker contenedores como un complejo, una unidad. El tema es bastante extenso y complejo, pero muy interesante. Al implementar el proyecto en una máquina de esta manera, puede implementarlo donde lo necesite simplemente copiando la configuración allí. Es por eso que esta tecnología ha ganado tanta popularidad entre los desarrolladores y DevOps.

Votar:
5 de 5
Calificación promedio: 5
Calificado por: 1
1101 CT Ámsterdam Países Bajos, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

También te podría interesar...

Utilizamos cookies para hacer que su experiencia en el Serverspace mejor. Al continuar navegando en nuestro sitio web, usted acepta nuestros
Uso de Cookies y Política de Privacidad.