Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1754 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Logiciels

  Migration de Docker

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Migration de Docker

n°1458526
NicCo
Posté le 22-12-2020 à 13:56:06  profilanswer
 

Bonjour :)
Je suis en train de me mettre doucement sur Docker pour tester quelques trucs, mais j'ai quelques questions :
- Si j'installe une base Ubuntu (Server ou Desktop), est-ce qu'il sera possible de migrer sur une base Debian par la suite ?
- Est-ce qu'il est possible de modifier le chemin de stockage par défaut de Docker ? Et si oui, il faudra simplement copier ce répertoire sur le nouveau système Docker ? Et bien sûr installer les containers nécessaires
- Est-ce qu'il est possible de migrer d'un Docker sur VM vers un Docker physique ? Je pense que oui vu qu'il n'y a pas de différence entre les 2 niveau système mais on ne sait jamais si je loupe une subtilité :)
Merci !


---------------
Topic de vente
mood
Publicité
Posté le 22-12-2020 à 13:56:06  profilanswer
 

n°1458527
Erlum
Posté le 22-12-2020 à 14:04:06  profilanswer
 

Les questions que tu te poses montrent que tu ne comprends pas vraiment comment ça fonctionne.  :D  
 
L'idée même de Docker c'est que c'est très facile à migrer, il n'y a pas de dépendances vis-à-vis du système qui héberge tes conteneurs, si ce n'est que ça doit être Linux. ( Les versions Mac OS et Windows utilisent une VM pour ça)
 
Dans l'ordre :

  • Que veux-tu dire par installer une base ubuntu ? Tu parles de l'image de base qui te serviras pour ton image ?
  • Qu'appelles-tu chemin de stockage par défaut de Docker ? Les données de tes conteneurs peuvent être n'importe où.
  • VM ou pas peu importe, Docker s'installe sur un OS Linux, le reste il s'en fout pas mal.

n°1458528
NicCo
Posté le 22-12-2020 à 14:31:20  profilanswer
 

Oui je m'y mets doucement :D j'avais commencé à regarder un peu il y a quelques temps puis manque de temps mais maintenant je vais m'y remettre plus sérieusement ;)
Mais j'ai encore un peu de mal avec les fichiers persistants, les fichiers qui ne le sont pas, etc... Je me demande toujours s'il n'y a pas des fichiers qui sont dans un endroit dont je n'ai pas connaissance, etc...
Dans l'ordre aussi :
- Quand je dis une base Ubuntu, je parle de l'OS installé / des distributions basées dessus (par exemple Mint). Après Ubuntu étant basée sur Debian...
- Les données de Docker peuvent être stockées n'importe où mais il n'y a pas un répertoire de stockage par défaut ? Par exemple si j'oublie de déclarer un volume persistant dans une config Docker, où vont aller les données ?
- C'est bien ce qui me semblait pour Docker sous Windows, donc je peux faire mes tests sur une VM puis basculer sur un hôte physique quand c'est OK


---------------
Topic de vente
n°1458530
Erlum
Posté le 22-12-2020 à 14:56:19  profilanswer
 

NicCo a écrit :

Oui je m'y mets doucement :D j'avais commencé à regarder un peu il y a quelques temps puis manque de temps mais maintenant je vais m'y remettre plus sérieusement ;)
Mais j'ai encore un peu de mal avec les fichiers persistants, les fichiers qui ne le sont pas, etc... Je me demande toujours s'il n'y a pas des fichiers qui sont dans un endroit dont je n'ai pas connaissance, etc...
Dans l'ordre aussi :
- Quand je dis une base Ubuntu, je parle de l'OS installé / des distributions basées dessus (par exemple Mint). Après Ubuntu étant basée sur Debian...
- Les données de Docker peuvent être stockées n'importe où mais il n'y a pas un répertoire de stockage par défaut ? Par exemple si j'oublie de déclarer un volume persistant dans une config Docker, où vont aller les données ?
- C'est bien ce qui me semblait pour Docker sous Windows, donc je peux faire mes tests sur une VM puis basculer sur un hôte physique quand c'est OK

 
  • Peu importe que ce soit Ubuntu, CentOS, Debian... Docker se sert de ton OS uniquement pour son noyau donc tu peux avoir un même conteneur qui tourne sur des versions de Linux très différentes, aucun problème, c'est en grande partie l'intérêt de la chose.
  • Tes conteneurs persistent bien sûr en mémoire, et tes fichiers sont bien enregistrés quelque part dans /var/lib/docker/overlay2/... Mais tu ne devrais jamais t'amuser à manipuler tes fichiers par là. Utilise des volumes ou éventuellement un COPY dans ton dockerfile.
  • Tout à fait. Aucun problème à faire tourner Docker sur une VM cependant, viser le physique n'a plus de sens de nos jours.

Message cité 1 fois
Message édité par Erlum le 22-12-2020 à 15:22:44
n°1458531
NicCo
Posté le 22-12-2020 à 15:11:37  profilanswer
 

Erlum a écrit :

  • Peu importe que ce soit Ubuntu, CentOS, Debian... Docker se sert de ton OS uniquement pour son noyau donc tu peux avoir un même conteneur qui tourne sur des versions de Linux très différentes, aucun problème, c'est en grande partie l'intérêt de la chose.

Ok au moins c'est clair, je peux partir sur n'importe quelle distribution de Linux je n'aurais pas de souci :jap:
 

Erlum a écrit :

  • Tes conteneurs persistent bien sûr en mémoire, et tes fichiers sont bien enregistrés quelque part dans /var/lib/docker/overlay2/[ID de ton conteneur/... Mais tu ne devrais jamais t'amuser à manipuler tes fichiers par là. Utilise des volumes ou éventuellement un COPY dans ton dockerfile.

C'est là où je bloque un peu. Prenons par exemple un Docker Compose pour Plex dans lequel il y a la déclaration suivante :

Code :
  1. volumes:
  2.       - /home/plex/config:/config
  3.       - /home/plex/movies:/data/movies
  4.       - /home/plex/tv:/data/tv


Si je déclare ça, tous les fichiers présents sur mon hôte dans /home/plex/config seront vu par le containeur dans /config ? Et si je ne déclare pas cette ligne, où le containeur Docker va-t-il écrire les fichiers qu'il a modifié dans /config ?
 

Erlum a écrit :

  • Tout à fait. Aucun problème à faire tourner Docker sur une VM cependant, viser le physique n'a plus de sens de nos jours.

Donc tu penses que je n'ai pas besoin de créer un hôte physique dédié à Docker ? Tu me conseillerais quoi ? Un hyperviseur dans lequel je fais tourner une VM sur laquelle j'installe Docker ?

Message cité 1 fois
Message édité par NicCo le 22-12-2020 à 15:13:43

---------------
Topic de vente
n°1458532
Erlum
Posté le 22-12-2020 à 15:22:14  profilanswer
 

NicCo a écrit :


C'est là où je bloque un peu. Prenons par exemple un Docker Compose pour Plex dans lequel il y a la déclaration suivante :

Code :
  1. volumes:
  2.       - /home/plex/config:/config
  3.       - /home/plex/movies:/data/movies
  4.       - /home/plex/tv:/data/tv


Si je déclare ça, tous les fichiers présents sur mon hôte dans /home/plex/config seront vu par le containeur dans /config ? Et si je ne déclare pas cette ligne, où le containeur Docker va-t-il écrire les fichiers qu'il a modifié dans /config ?


Yes c'est ça. Si tu précises rien, ce sera dans le dossier que je t'ai donné plus haut, et qui n'est pas fait pour être manipulé à la main. C'est pour ça qu'on utilise des volumes, c'est plus clair et ça t'offre de la portabilité très facilement puisque tu peux balader un Dockerfile ou un fichier docker-compose avec ton répertoire d'un hôte docker à un autre sans problème.

 
NicCo a écrit :


Donc tu penses que je n'ai pas besoin de créer un hôte physique dédié à Docker ? Tu me conseillerais quoi ? Un hyperviseur dans lequel je fais tourner une VM sur laquelle j'installe Docker ?

 

Tout dépend de ce qui tourne chez toi ! Si t'utilises déjà un hyperviseur type hyper-v, vmware, proxmox... Alors tu peux te créer une VM pour faire tourner tes conteneurs Docker dessus. Si tu veux dédier une machine uniquement à ça et que tu ne veux pas faire tourner d'autres VM alors tu peux installer Docker directement sur ton OS sur la machine physique, toi qui vois.
Si demain tu veux mettre tes conteneurs sur une VM ce sera pas un soucis !

Message cité 1 fois
Message édité par Erlum le 22-12-2020 à 15:24:29
n°1458533
NicCo
Posté le 22-12-2020 à 15:33:07  profilanswer
 

Erlum a écrit :


Yes c'est ça. Si tu précises rien, ce sera dans le dossier que je t'ai donné plus haut, et qui n'est pas fait pour être manipulé à la main. C'est pour ça qu'on utilise des volumes, c'est plus clair et ça t'offre de la portabilité très facilement puisque tu peux balader un Dockerfile ou un fichier docker-compose avec ton répertoire d'un hôte docker à un autre sans problème.
 


 

Erlum a écrit :


 
Tout dépend de ce qui tourne chez toi ! Si t'utilises déjà un hyperviseur type hyper-v, vmware, proxmox... Alors tu peux te créer une VM pour faire tourner tes conteneurs Docker dessus. Si tu veux dédier une machine uniquement à ça et que tu ne veux pas faire tourner d'autres VM alors tu peux installer Docker directement sur ton OS sur la machine physique, toi qui vois.
Si demain tu veux mettre tes conteneurs sur une VM ce sera pas un soucis !


Merci :) ça commence à devenir plus clair.
 
Du coup j'ai 2 autres questions :
- Si je ne déclare pas un volume au début, mais que je veux le déclarer par la suite, est-ce possible ? Si oui, c'est lui qui déplacera les données du répertoire qui est dans /var/lib/docker/overlay2/... vers le nouveau répertoire indiqué dans la déclaration ? Ou je dois le faire manuellement ?
- Si je veux migrer d'un hôte vers un autre, il faudra aussi que je migre les données présentes dans /var/lib/docker/overlay2/... vers le nouvel hôte ?
 
Et pour l'installation je vais voir, actuellement j'ai un Hyper-V avec quelques VM Ubuntu, mais Docker tournera sur un PC ailleurs. Donc je vais réfléchir si je pars sur un Docker en VM ou non ;)


---------------
Topic de vente
n°1458534
Erlum
Posté le 22-12-2020 à 15:57:08  profilanswer
 

NicCo a écrit :


Merci :) ça commence à devenir plus clair.

 

Du coup j'ai 2 autres questions :
- Si je ne déclare pas un volume au début, mais que je veux le déclarer par la suite, est-ce possible ? Si oui, c'est lui qui déplacera les données du répertoire qui est dans /var/lib/docker/overlay2/... vers le nouveau répertoire indiqué dans la déclaration ? Ou je dois le faire manuellement ?
- Si je veux migrer d'un hôte vers un autre, il faudra aussi que je migre les données présentes dans /var/lib/docker/overlay2/... vers le nouvel hôte ?

 

Et pour l'installation je vais voir, actuellement j'ai un Hyper-V avec quelques VM Ubuntu, mais Docker tournera sur un PC ailleurs. Donc je vais réfléchir si je pars sur un Docker en VM ou non ;)

 
  • Déclare le volume, un point c'est tout.  :p  C'est le meilleur moyen de faire et ça te permet d'échanger des fichiers simplement. Le conteneur en lui-même n'a pas vocation à stocker des données mais le fonctionnement de l'application !
  • Non, ton conteneur, c'est une instance d'une image, dedans tu as : les fichiers déjà présents dans l'image qui seront recopiés quand tu lanceras le conteneur ailleurs, les fichiers de tes volumes, et les fichiers qui sont créés en dehors de ces volumes pendant le fonctionnement du conteneur. Vois ton conteneur comme un simple fichier qui précise comment il est censé fonctionner, rien de plus. En gros quand tu migres, tu migres ce fichier et les volumes qui vont avec ailleurs ; tu relances le conteneur et hop ça marche.


Je t'invite fortement à pratiquer un peu avec des tutos d'initiation afin que tu te fasses une meilleure idée de ce qu'est Docker.
Tu devrais aussi t'intéresser à docker-compose pour lancer ton plex, ce sera beaucoup plus propre.


Message édité par Erlum le 22-12-2020 à 16:16:31
n°1458553
NicCo
Posté le 22-12-2020 à 20:04:50  profilanswer
 

Oui je vais me refaire les cours sur Docker et Docker-Compose, j'avais commencé et j'avais un truc qui tournait à peu près mais sans comprendre le truc de bout en bout.
 

  • Il y a un moyen de savoir les fichiers utilisés par Docker ? Afin de savoir les volumes à monter ?
  • Il y a des commandes d'export d'un container pour le réimporter ailleurs ?
  • Il va falloir que je m'intéresse aussi à la sauvegarde après, il y a des solutions dispo ou il faut prévoir de faire les choses à la main ?


Je suis en train de me monter une VM, je vais commencer avec des choses simples ;) merci en tout cas déjà pour tes réponses


---------------
Topic de vente
n°1458581
Erlum
Posté le 23-12-2020 à 15:23:15  profilanswer
 

NicCo a écrit :

Oui je vais me refaire les cours sur Docker et Docker-Compose, j'avais commencé et j'avais un truc qui tournait à peu près mais sans comprendre le truc de bout en bout.
 

  • Il y a un moyen de savoir les fichiers utilisés par Docker ? Afin de savoir les volumes à monter ?
  • Il y a des commandes d'export d'un container pour le réimporter ailleurs ?
  • Il va falloir que je m'intéresse aussi à la sauvegarde après, il y a des solutions dispo ou il faut prévoir de faire les choses à la main ?


Je suis en train de me monter une VM, je vais commencer avec des choses simples ;) merci en tout cas déjà pour tes réponses


 

  • Ca n'a pas de sens, c'est toi qui est censé savoir les données qui vont évoluer dans ton conteneur et que tu veux conserver dans tes volumes
  • Comme je te l'ai dis plus haut, on exporte pas vraiment un conteneur, mais ses données et le fichier qui le définit
  • Sauvegarde simplement les volumes et le Dockerfile/docker-compose.yml


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Logiciels

  Migration de Docker

 

Sujets relatifs
[Docker] création de container et mise à jour[Ubuntu] Migration HDD --> SSD avec un LVM
Migration de base Owncloud[Samba] Migration PDC NT4 -> Active Directory
transmission-daemon/docker/vpnDocker (Piwik;Ghost) : Debian 8
soucis avec docker et reverse proxy apacheProblème de connexion après migration
Problème installation Docker sur OMVmigration version debian vers une autres version
Plus de sujets relatifs à : Migration de Docker


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR