Selon la documentation ici : https://docs.docker.com/storage/volumes/
Si vous démarrez un conteneur qui crée un nouveau volume, comme ci-dessus, et que le conteneur possède des fichiers ou des répertoires dans le répertoire à monter (comme /app/ ci-dessus), le contenu du répertoire est copié dans le volume. Le conteneur monte ensuite le volume et l'utilise, et les autres conteneurs qui utilisent le volume ont également accès au contenu pré-rempli.
En d'autres termes, l'attente est que, si j'ai des fichiers comme celui-ci dans /var/lib/mysql
root@d8fa9a8b305a:/var/lib/mysql# ls
auto.cnf xtz ib_logfile0 ibdata1 mysql sys
debian-5.7.flag ib_buffer_pool ib_logfile1 ibtmp1 performance_schema
Ensuite, lorsque je monte un volume dans /var/lib/mysql
alors tous les fichiers du conteneur devraient être copiés dans mon volume.
Mais je constate que ce n'est pas le cas :
/var/lib/mysql/mysql # ls
auto.cnf ib_buffer_pool ib_logfile0 ib_logfile1 ibdata1
C'est le contenu du volume que j'ai monté dans /var/lib/mysql, et comme vous pouvez le voir les données ne sont pas les mêmes que celles présentes dans /var/lib/mysql de l'image docker elle-même. Donc, en conséquence, il y a un échec au démarrage.
Nota : Le volume en question est effectivement monté par kubernetes. Donc, je fais une supposition majeure ici que
volumeMounts:
- name: xtz-persistent-storage
mountPath: "/var/lib/mysql/"
est l'équivalent de faire ceci : docker run -p 443:443 --rm -v mysql:/var/lib/mysql <image>