[Docker] Docker implementa Mysql y configura la persistencia de datos


El propósito de utilizar Docker es facilitar la descarga y la implementación sin tener que pasar por los tediosos pasos de descarga, configuración, instalación, etc. Pero al mismo tiempo, Docker también tiene algunas desventajas: por ejemplo, después de eliminar el contenedor, los datos se perderán. Obviamente, la incapacidad de persistir es inaceptable para una base de datos MySQL que requiere persistencia de datos, ¿hay alguna forma de solucionarlo?

Si, mediante montaje

1. Docker persiste en MySQL

La mayor ventaja del montaje es que después de eliminar el contenedor, el archivo aún existe en el host. La próxima vez que inicie un nuevo contenedor, aún podrá usar los datos sin tener que reconfigurar el entorno y restaurar los datos. Esto es especialmente amigable para contenedores que requieren persistencia, como mysql.

En cuanto al uso, -vpuede montar archivos en el host en el contenedor mediante el comando y especificarlo al iniciar el contenedor. Por ejemplo:

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7

2. Pruebe eliminar el contenedor MySQL y luego crear un nuevo contenedor. Los datos aún están ahí.

  1. Supongamos que se crea una base de datos spring_test en un contenedor llamado mysql_test.

  2. Ahora elimine el contenedor mysql_test (si no está montado, se eliminarán todas las bases de datos)

    docker rm mysql_test
    
  3. Reinstale los archivos fuente de montaje en el nuevo contenedor mysql_test_new

    docker run -p 3306:3306 --name mysql_test_new \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root  \
    -d mysql:5.7
    
  4. Después de iniciar sesión, descubrí que los datos de la base de datos original spring_test todavía existen, jaja, la experiencia es excelente.

3. Referencias

Mi artículo: "Cómo comprobar qué versión tiene una imagen de Docker.md"

Mi artículo: "Docker establece la fuente de imagen nacional.md"

Mi artículo: "Tutorial práctico de inicio rápido de Docker.md"

Mi artículo: "Docker instala MySQL, Redis, RabbitMQ, Elasticsearch, Nacos y otros servicios comunes.md"

Mi artículo: "Docker instala Nacos service.md"

Mi artículo: "Cómo modificar el archivo .md en Docker"

Mi artículo: "Métodos de conexión o comunicación entre contenedores Docker.md"

Mi artículo: "Cómo MySQL instalado por Docker persiste en la base de datos data.md"

Mi artículo: "Hacer Docker Private Repository.md"

Mi artículo: "Uso del complemento docker-maven-plugin para crear, publicar y enviar imágenes a almacenes privados.md"

Mi artículo: "Resolver el error al acceder al puerto 9200 después de que Docker instaló Elasticsearch.md"


Portal: análisis del código fuente Spring5 al estilo Nanny

Bienvenido a intercambiar tecnología y vida laboral con el autor.

Contacta con el autor

Supongo que te gusta

Origin blog.csdn.net/yuchangyuan5237/article/details/131971896
Recomendado
Clasificación