Comment monter un partage NFS/volume dans le conteneur à l'aide de docker composer v3
J'ai un fichier composer avec la v3, où il y a 3 services de partage de/en utilisant le même volume. Lors de l'utilisation de l'essaim de mode, nous avons besoin de créer des conteneurs & les volumes à gérer nos services dans l'ensemble du cluster.
Je suis à la planification de l'utilisation de NFS serveur, de sorte que le seul partage NFS obtiendrez directement monté sur tous les hôtes du cluster.
J'ai trouvé ci-dessous deux façons de le faire, mais il a besoin de plus de mesures à effectuer sur le panneau d'accueil -
- Monter le partage NFS à l'aide de "fstab" ou "monter" de commande sur l'hôte & ensuite l'utiliser comme un hôte de volume pour docker services.
- Utilisation Netshare plugin - https://github.com/ContainX/docker-volume-netshare
Est-il un moyen standard où je peux directement utiliser/monter un partage NFS en utilisant le panneau de composer v3 en effectuant seulement quelques-uns/n étapes(je comprends que "nfs-common" package est nécessaire de toute façon) sur le panneau d'accueil?
OriginalL'auteur vivekyad4v | 2017-07-24
Vous devez vous connecter pour publier un commentaire.
Après avoir découvert que c'est massivement les sans-papiers,voici la bonne façon de monter un volume NFS à l'aide de la pile et le panneau composition.
La chose la plus importante est que vous devez être à l'aide de
version: "3.2"
ou plus. Vous aurez l'étrange et de l'onu-des erreurs évidentes si vous ne le faites pas.Le deuxième problème est que les volumes sont pas automatiquement mis à jour lors de leur changement de la définition. Cela peut vous amener vers le bas un trou de lapin de penser que vos modifications ne sont pas correct, quand ils n'ont tout simplement pas été appliquée. Assurez-vous que vous
docker rm VOLUMENAME
partout où il pourrait éventuellement être, comme si le volume n'existe, il ne sera pas validé.La troisième question est plus d'une NFS question - La NFS dossier pas être créé sur le serveur si il n'existe pas. C'est juste la façon NFS fonctionne. Vous devez vous assurer qu'elle existe avant de faire quoi que ce soit.
(Ne retirez pas le "soft" et "nolock', sauf si vous êtes sûr que vous savez ce que vous faites - ceci arrête le panneau contre le gel si votre serveur NFS s'en va)
Voici un exemple complet:
Maintenant, essaim-4:
Ce volume sera créé (mais ne la détruit pas) sur n'importe quel essaim de nœud que la pile est en cours d'exécution sur.
peut-être xrobau parler de plusieurs répliques de parler de la même serveur nfs.
"soft" permet IO être interrompu. 'nolock' vous permet de flock() appelle toujours réussir. Si vous comptez sur la fonction flock() avec plusieurs utilisateurs sur NFS, vous êtes significativement ralentissement de votre Disque IO, et vous devriez revoir la conception de votre application.
c'est ce que j'ai besoin de sortir de l'capricieux et difficile docker volume netshare (DVN) efs pilote. lorsque vous essayez ce à l'origine, la pièce, j'ai manqué de me conduire à DVN était le "dispositif:" spec sous "driver_opts:". merci.
Hey, cette méthode signifie que les adresses IP sont codés en dur dans le fichier yml et ne peut pas être changé. Est-il un moyen de les mettre dans le conteneur de la portée et de les définir à l'aide d'un .fichier de configuration?
OriginalL'auteur xrobau
Oui, vous pouvez directement référence à un NFS à partir de la composition du fichier:
Et d'une manière analogue, vous pouvez créer un volume nfs sur chaque hôte.
Merci de remarquer que j'ai ajouté dans la réponse à être plus clair.
OriginalL'auteur herm
Ma solution pour AWS EFS, qui fonctionne:
Installer le paquet nfs-common:
sudo apt-get install -y nfs-common
Vérifier si votre système de fichiers efs:
ls -la efs-test-point/
Configurer docker-composer.fichier yml:
OriginalL'auteur super_p