Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Compose es una herramienta de software lanzada por Docker Company, que puede administrar múltiples contenedores Docker para formar una aplicación. Debe definir un archivo de configuración docker-compose.yml en formato YAML y escribir las relaciones de llamada entre múltiples contenedores.Luego, con un solo comando, puedes iniciar/detener estos contenedores al mismo tiempo.
Docker recomienda que solo ejecutemos un servicio en cada contenedor. Debido a que el contenedor Docker en sí consume muy pocos recursos, es mejor separar cada servicio por separado. ¿Pero entonces nos enfrentamos a otro problema?
Si necesito implementar varios servicios al mismo tiempo, ¿tengo que escribir un Dockerfile separado para cada servicio y luego crear la imagen y el contenedor? Esto es agotador, por lo que Docker nos proporciona oficialmente la herramienta de implementación multiservicio Docker-Compose. .
Por ejemplo, para implementar un proyecto de microservicio web, además del contenedor de servicios web en sí, a menudo es necesario agregar el contenedor de servicios mysql de la base de datos back-end, el servidor redis, el centro de registro eureka e incluso los contenedores de equilibrio de carga, etc. . . . . .
Compose permite a los usuarios definir un conjunto de contenedores de aplicaciones asociados como un proyecto a través de un archivo de plantilla docker-compose.yml separado (formato YAML).
Puede definir fácilmente una aplicación de contenedores múltiples con un archivo de configuración y luego usar un solo comando para instalar todas las dependencias de la aplicación y completar la compilación. Docker-Compose resuelve el problema de cómo gestionar y organizar contenedores.
Dirección de descarga acelerada
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
Agregar permisos ejecutables
chmod +x /usr/local/bin/docker-compose
Compruebe si la instalación es exitosa
docker-compose --version
desinstalar
sudo rm / usr/ local/ bin/docker-compose
Tres pasos para usar Compose
Escriba Dockerfile para definir cada aplicación de microservicio y cree el archivo de imagen correspondiente
Utilice docker-compose.yml para definir una unidad de negocio completa y organizar varios servicios de contenedor en la aplicación general.
Finalmente, ejecute el comando docker-compose up para iniciar y ejecutar la aplicación completa para completar la implementación con un solo clic y conectarse.
Redactar comandos comunes
docker-compose -h # Ver ayuda
docker-compose up # Inicia todos los servicios de docker-compose
docker-compose up -d # Inicia todos los servicios de docker-compose y ejecútelos en segundo plano
docker-compose down # Detener y eliminar contenedores, redes, volúmenes e imágenes.
La identificación del servicio en docker-compose exec yml # Ingrese dentro de la instancia del contenedor
docker-compose exec docker-compose.yml archivo escrito id de servicio /bin/bash
docker-compose ps # Muestra todos los contenedores en ejecución actualmente orquestados por docker-compose
docker-compose top # Muestra los procesos del contenedor actual orquestados por docker-compose
ID de servicio en los registros de Docker-Compose yml # Ver el registro de salida del contenedor
docker-compose config # Verificar configuración
docker-compose config -q # Verifique la configuración y la salida solo si hay problemas
reinicio de docker-compose # Reiniciar el servicio
docker-compose start # Iniciar el servicio
docker-compose stop # Detener el servicio
instalación del comando docker-machine
base=https://get.daocloud.io/docker/machine/releases/download/v0.14.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
sudo install /tmp/docker-machine /usr/local/bin/docker-machine
1) En la máquina virtual Linux, configure la dirección IP en 192.168.90.215 (x son los últimos 3 dígitos de su identificación de estudiante, y la especifica usted mismo) y la máquina virtual podrá acceder a Internet normalmente;
2) Configure el servidor DNS, el dominio es cr.com (abc son las iniciales de su nombre), una vez completada la configuración, use nslookup para verificar la resolución directa e inversa;
3) Configure LEMP (es decir, Nginx + MySQL (MariaDB) + PHP) y acceda a www.cr.com (abc son sus iniciales) a través del host real para acceder al LEMP integrado. (No puede modificar el archivo de hosts para la resolución local, pero debe usar su propio DNS configurado)
Primero configure la IP estática para Linux http://alleniverrui.top/archives/linux-pei-zhi-jing-tai-ip (si no se puede abrir, cambie la dirección a continuación)
//hacer
Edite el archivo /etc/named.conf
vim /etc/named.conf
Cambie los valores de escucha y consulta a cualquier
Configure DNS para resolver cr.com en 192.168.90.215
vim /etc/named.rfc1912.zones
Agregar al final del archivo
zone "cr.com" IN {
type master;
file "cr.com.zone";
allow-update { none; };
};
zone "215.90.168.192.in-addr.arpa" IN {
type master;
file "com.cr.loop";
allow-update { none; };
};
:wq para guardar
Edite el archivo de configuración correspondiente vim /var/named/com.cr.loop
Añade lo siguiente
$TTL 1D
@ IN SOA cr.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR cr.com.
NS ns.cr.com.
ns A 192.168.90.215
201 PTR www.cr.com.
201 PTR email.cr.com.
Editar vim /var/named/cr.com.zone
Añade lo siguiente
$TTL 1D
@ IN SOA cr.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.90.215
AAAA ::1
NS ns.server.com.
ns IN A 192.168.90.215
www IN A 192.168.90.215
email IN A 192.168.90.215
Reiniciar dns
systemctl restart named
Ver estado de DNS
systemctl status named
Comenzó con éxito
Análisis directo de nslookup cr.com
Análisis inverso nslookup 192.168.90.215
Escriba el archivo docker-compose.yml en /mydocker/lemp
vim /mydocker/lemp/docker-compose.yml complete el siguiente contenido
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes_from:
- app
php:
build: ./php/
expose:
- 9000
links:
- mysql
volumes_from:
- app
app:
image: php:7.0-fpm
volumes:
- .:/var/www/html
command: "true"
mysql:
image: mysql:latest
volumes_from:
- data
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: bookmarks
MYSQL_USER: cr
MYSQL_PASSWORD: cr123
data:
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:80
links:
- mysql
environment:
PMA_HOST: mysql
Cree nginx/Dockerfile en /mydocker/lemp/
llenar
FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/default.conf
Crear default.conf
Complete el siguiente contenido
server {
listen 80 default_server;
root /var/www/html;
index index.html index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/error.log error;
sendfile off;
client_max_body_size 100m;
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /.ht {
deny all;
}
}
Crear php/Dockerfile en /mydocker/lemp/
llenar
FROM php:7.0-fpm
RUN docker-php-ext-install mysqli
Orquestar contenedores acoplables
docker-compose up -d
Docker ps para ver el estado de ejecución del contenedor
iniciado con éxito
Esta máquina accede al entorno php y al entorno nginx a través de IP
Acceso exitoso
Configure el servidor DNS local como una máquina virtual, que es 192.168.90.215
Abra la ventana cmd y realice una prueba de ping en cr.com
Se hizo ping con éxito
Acceda al entorno php creado a través del nombre de dominio
Modificar el archivo de configuración de nginx
El nombre de dominio final accede directamente al sitio web