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:
De esta manera, el directorio / home del contenedor se monta en / home / ceshi del host.
Utilice el docker inspect 容器id
comando para ver la información detallada del contenedor
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
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
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:
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:
- -v ruta del contenedor (montaje anónimo)
- -v nombre del volumen: ruta en el contenedor (llamado montaje)
- -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:
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:
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;