Nous allons utiliser la commande docker cp
pour copier un fichier disponible sur notre host dans un dossier tmp
du container guest:
1 |
$ docker cp <CHEMIN_VERS_LE_DUMP_DEPUIS_L'EMPLACEMENT_OU_ON_EXECUTE_CETTE_COMMANDE>.sql <NOM_DU_CONTAINER_DANS_LEQUEL_ON_VEUT_COPIER_LE_FICHIER>:/tmp |
Puis se connecter au container db et taper la commande:
1 |
$ mysql –u <DB_USERNAME> –p<DB_PASSWORD> < /tmp/<DUMP>.sql <NOM_DE_LA_BASE_DANS_LAQUELLE_ON_VEUT_IMPORTER_LE_DUMP> |
ATTENTION: vous allez probablement obtenir un message mysql: [Warning] Using a password on the command line can be insecure.
. Votre dump sera tout-de-même importé.
pour la petite histoire, les volumes ça s’exprime sous la forme host:guest. guest est toujours un chemin absolu. host peut être :
- un path absolu (/bidule/…) ou relatif (./bidule, ../bidule) => un dossier ou un fichier du host est monté sur le path du guest
- un nom (mysql-data, pas de référence absolue ou relative) => il s’agit d’un volume nommé, on n’interagit pas avec, c’est géré de manière transparente pour toi par docker. Tu peux le voir via docker volumes ls, c’est stocké normalement dans /var/lib/docker/filesystems/… ou un truc du genre