J'utilise docker-composition pour créer un instance redmine .
Ceci est mon maintenant, chaque fois que je cours Aussi lorsque je exécute est-ce normal? p> Comment puis-je utiliser ces volumes précédents créés par Docker et avoir un très long nom de hasch? P> P> docker-compose.yml code>, qui est basé sur la documentation officielle: p>
docker-compose code> puis
docker-composant up code>, toutes mes données (base de données et fichiers) sont supprimés, même si je n'utilise pas
-v code> drapeau, qui est nécessaire pour supprimer des volumes. p>
docker volumes LS code>, il semble qu'un nouveau volume est créé après chaque
docker-compose code>. p>
3 Réponses :
Vous n'avez pas ajouté de volume pour la base de données. Ainsi, les données de base de données sont perdues chaque fois que vous faites docker-compose down code>. Si vous souhaitez conserver des données, vous pouvez ajouter du volume comme celui-ci:
version: '3.1'
services:
redmine:
image: redmine:4.0.4
restart: always
ports:
- 8890:3000
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_PASSWORD: password
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: redmine
volumes:
- db_data:/var/lib/mysql
volumes:
db_data: {}
Vous ne persistez pas les données de conteneur MySQL sur votre hôte. Donc oui, une nouvelle instance fraîche est créée. C'est le comportement réel du docker. Veuillez lire la documentation MySQL "Où stocker des données" chez MySQL Docker Hub Repo P>
Vous devez attribuer des paramètres de volume à l'aide de ce
Premièrement, vous devez supprimer toutes les données OLLLES MYSQL à l'aide de P>
docker-compose down -v
Je suppose que c'est par conception.
Docker-Compose Down code> est conçu pour nettoyer les ressources. Et probablement Docker n'a aucun moyen de dire qu'il doit réutiliser le volume sur le prochain
docker-composant code>. Si vous voulez arrêter le conteneur, vous pouvez utiliser
docker-composez stop code> à la place. Ou peut-être envisager de donner un nom de volume un nom de sorte que Docker-Compose sait de la réutiliser.