Objetivo: cargador de muelle de contenedores despliegue mysql5.7.28, datos de MySQL escrito al host directorio de archivo de registro (datos persistente)
Descargar MySQL Espejo
Introduzca la base de datos mysql reflejo seleccione la versión 5.7.28 del espejo y descarga
docker pull mysql:5.7.28
Inicio contenedor de MySQL
1. contenedor de MySQL de inicio
docker run --name mysql_test -d -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 mysql:5.7.28
run
: Comando para iniciar un contenedor
--name
Y el contenedor de nomenclatura
-d:
Deje que el contenedor se ejecuta en segundo plano (correspondiente a los otros parámetros: -i
operación interactiva, -t
para abrir una pseudo-terminal)
-e MYSQL_ROOT_PASSWORD
: Inicializar la contraseña del usuario root es 123456
-p
: 3306 mapeados al puerto host del puerto de contenedores 3307
mysql:5.7.28
: Mysql reflejado nombre de almacén y la etiqueta también puede ser activado directamente por ID mirroring
2. Ir al recipiente mysql para ver la ruta del archivo de configuración MySQL
docker exec -it mysql_test sh # 进入mysql容器
mysql -uroot -p123456 # 进入root账号登录mysql
3. Comprobar los ficheros de datos de configuración de MySQL y la ruta del archivo de registro
show variables like 'general_log_file'; # 日志文件路径
show variables like 'log_error'; # 错误日志文件路径
show variables like 'slow_query_log_file'; # 慢查询日志文件路径
show variables like 'datadir'; # 查看数据库数据文件路径
Ver y encontró el registro, archivos de registro de consultas lentas y de datos se encuentran en el contenedor / var / lib / mysql permisos, el registro de errores no está configurado
Siendo ese el caso, vamos a montar el recipiente en un directorio vacío / var / lib / mysql y modificar los archivos de registro de error de archivo de configuración juntos en este camino
Listo para montar directorios y archivos
1. En el marco del nuevo huésped para montar los directorios y archivos de registro
sudo mkdir -p /home/docker_data/mysql
Nota: La ruta debe ser una ruta absoluta, el host si no existe el directorio, se generará de forma automática
2. Modificar el permiso propietario para montar el archivo / home / docker_data / MySQL 999
sudo chown 999 /home/docker_data/mysql
3. El contenedor de directorio de perfil mysql_test /etc/mysql/mysql.conf.d/mysqld.cnf copiado al host / home / test
# 退出容器mysql_test
exit
# 复制mysql配置文件mysqld.cnf到宿主机目录/home/test
docker cp mysql_test:/etc/mysql/mysql.conf.d/mysqld.cnf /home/test
registro de errores de la ruta del perfil 4. Modificar / var / lib / mysql
vim /home/test/mysqld.cnf # 编辑配置文件mysqld.cnf
#log-error = /var/log/mysql/error.log # 修改前
log-error = /var/lib/mysql/error.log # 修改后
5. Retire el contenedor mysql_test
docker stop mysql_test # 停止
docker rm mysql_test # 删除
cargador de muelle de contenedores mysql inicio
1. buque MySQL Inicio y montar el archivo al host
docker run --name mysql_5.7.28 -d -e MYSQL_ROOT_PASSWORD=123456 -v /home/docker_data/mysql:/var/lib/mysql -p 3307:3306 mysql:5.7.28
-v
: El directorio anfitrión está montado en el recipiente ( -v /home/docker_mysql/datadir:/var/lib/mysql
con el host / home / docker_mysql / datadir montado en el contenedor / var / lib / mysql directorio, el parámetro -v puede repetirse varias veces, cada vez para montar un contenedor de directorio)
2. El perfil de anfitrión /home/test/mysqld.cnf /etc/mysql/mysql.conf.d copia en el mysql_5.7.28 envase
docker cp /home/test/mysqld.cnf mysql_5.7.28:/etc/mysql/mysql.conf.d
3. reinicie el contenedor y ver la operación recipiente ventana acoplable
docker ps -a
4. ventana acoplable caso Visor de registro de inicio
docker logs -t -f --tail=10 mysql_5.7.28
Las Opciones:
--details mostrar más información
-f, en tiempo real registro de seguimiento de --follow
pantalla cadena --ya desde una marca de tiempo de registro, o el tiempo relativo, tales como 42m (es decir, 42 minutos)
al final --tail cadena desde el registro de registro muestra cuántas líneas, default Todos
-t, --timestamps sello de tiempo de presentación
--until pantalla cadena a partir de una marca de tiempo de registro anterior, o el tiempo relativo, tal como 42 m (es decir, 42 minutos)
Ejemplos:
Ver el registro después de la hora señalada, sólo los últimos 100 líneas:
$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
Ver los registros de los últimos 30 minutos:
$ docker logs --since 30m CONTAINER_ID
Ver el registro después de un cierto tiempo:
$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
Ver un período de registro de tiempo:
$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
Nota : Si el permiso de propietario para montar el archivo no está correctamente no iniciarse y el informe de los permisos suficientes (como se muestra a continuación):
5. Conexión Navicat es exitosa y una nueva base de datos -test_2019
línea de comandos o directamente conectados al servidor
mysql -h 127.0.0.1 -uroot -p123456 -P3307
或者:mysql -h mysql容器IP -uroot -p123456 -P3306
Nota: -H designadas con ip -u especifica el nombre de usuario -p contraseña -P especificar el número de puerto especificado
Método vista de contenedor IP
方法一 docker inspect 容器的id或者容器名 | grep IPAddress
方法二 sudo docker inspect -f='{{.NetworkSettings.IPAddress}}' $(sudo docker ps -a -q)
方法三 ps -aux | grep 3307
6. Revisión del datadir carpeta de la base en más de un archivo de base de datos -test_2019, MySQL hasta ahora desplegado