Considérez pour ces réponses:
- Le nom de la base de données est
app_schema
- Le nom du conteneur est
app_db
- Le mot de passe root est
root123
Comment mettre à jour MySQL lors du stockage des données d'application dans le conteneur
Ceci est considéré comme une mauvaise pratique , car si vous perdez le conteneur, vous perdrez les données. Bien que ce soit une mauvaise pratique, voici une façon possible de le faire:
1) Faites un vidage de base de données en SQL:
docker exec app_db sh -c 'exec mysqldump app_schema -uroot -proot123' > database_dump.sql
2) Mettez à jour l'image:
docker pull mysql:5.6
3) Mettez à jour le conteneur:
docker rm -f app_db
docker run --name app_db --restart unless-stopped \
-e MYSQL_ROOT_PASSWORD=root123 \
-d mysql:5.6
4) Restaurez le vidage de la base de données:
docker exec app_db sh -c 'exec mysql -uroot -proot123' < database_dump.sql
Comment mettre à jour le conteneur MySQL à l'aide d'un volume externe
L'utilisation d'un volume externe est une meilleure façon de gérer les données et facilite la mise à jour de MySQL. La perte du conteneur ne perdra aucune donnée. Vous pouvez utiliser docker-compose pour faciliter la gestion des applications Docker multi-conteneurs dans un seul hôte:
1) Créez le docker-compose.yml
fichier afin de gérer vos applications:
version: '2'
services:
app_db:
image: mysql:5.6
restart: unless-stopped
volumes_from: app_db_data
app_db_data:
volumes: /my/data/dir:/var/lib/mysql
2) Mettre à jour MySQL (depuis le même dossier que le docker-compose.yml
fichier):
docker-compose pull
docker-compose up -d
Remarque: la dernière commande ci-dessus mettra à jour l'image MySQL, recréera et démarrera le conteneur avec la nouvelle image.