Tecnología de volumen de datos de Docker y combate real de MySQL

1. Tecnología de volumen de datos

Antes de entender qué es la tecnología de volumen de datos, siempre he tenido un problema: los contenedores y los datos parecen coexistir y morir, es decir, se borra el contenedor y los datos que contiene desaparecerán. La tecnología de volumen de datos resuelve este problema. Resuma en una frase: persistencia de contenedores y operaciones de sincronización e intercambio de datos entre contenedores.

1. Aplicación de volumen de datos

mando:

docker run -v  主机目录:容器目录

Captura de pantalla:
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
De esta manera, el directorio / home del contenedor se monta en / home / ceshi del host.

Utilice el docker inspect 容器idcomando para ver la información detallada del contenedor
Inserte la descripción de la imagen aquí
Nota: Después del montaje, los datos del contenedor y el host se sincronizan, es decir, cambiar el directorio host / home / ceshi container / home también cambiará, y viceversa.

2. Montaje anónimo y montaje con nombre

Montaje anónimo

docker run -v 容器路径

docker volume ls # 查看所有卷

Captura de pantalla: como
Inserte la descripción de la imagen aquí
puede ver, su nombre es una larga cadena de caracteres, lo que indica un montaje anónimo.

Montura con nombre

docker run -v 卷名:容器路径

Captura de pantalla: Como
Inserte la descripción de la imagen aquí
puede ver, su nombre es nuestro nombre, que se llama mount.

Eche un vistazo al volumen montado con nombre

docker volume inspect 挂载的卷名

Captura de pantalla:
Inserte la descripción de la imagen aquí
Podemos ver que su ubicación de montaje es en /var/lib/docker/volumes/juming-nginx/_data
circunstancias normales, montaremos el nombre del dispositivo

Resumen de métodos de montaje:

  1. -v ruta del contenedor (montaje anónimo)
  2. -v nombre del volumen: ruta en el contenedor (llamado montaje)
  3. -v / ruta de host: ruta en el contenedor (ruta especificada para montar)

Expansión:

#通过  -v 容器内路径:ro rw 改变文件的读写权限
#如
-v  卷名:容器内路径:ro
-v  卷名:容器内路径:rw

2. Combate MySQL

1. Tira del espejo

docker pull mysql:5.7

Captura de pantalla:
Inserte la descripción de la imagen aquí

2. Empiece en segundo plano

mando

docker run --name mysql02 -p 8004:3306 -v /home/mysql/conf:/etc/mysql/conf.d  -e MYSQL_ROOT_PASSWORD=xxx -v /home/mysql/data:/var/lib/mysql -d  mysql:5.7

Explicación:

  • -v significa utilizar tecnología de volumen de datos para montar la configuración y los datos de la base de datos en el host, de modo que incluso si se elimina el contenedor, los datos siguen ahí
  • -d significa comenzar en segundo plano
  • -e MYSQL_ROOT_PASSWORD = xxx representa la contraseña de la base de datos
  • --Name representa el nombre del contenedor

Prueba de conexión:
Inserte la descripción de la imagen aquí

Problemas encontrados: ERROR 1130: El host '192.168.1.3' no puede conectarse a este servidor MySQL 1.
Solución:

#进入容器
 docker exec -it mysql02 /bin/bash

#启动mysql,如果直接回车可以进去就先进去,然后修改密码;如果回车进不去就输入密码MYSQL_ROOT_PASSWORD=xxx中的xxx
mysql -u root -p

#进去后,授权
use mysql;
update user set host = '%' where user = 'root';
flush privileges;

Supongo que te gusta

Origin blog.csdn.net/weixin_43520670/article/details/113561910
Recomendado
Clasificación