Quelle est la bonne façon d'ajouter des données à un volume nommé dans le Panneau?
J'ai été en utilisant le Panneau à l'ancienne, avec un volume de conteneurs:
docker run -d --name jenkins-data jenkins:tag echo "data-only container for Jenkins"
Mais maintenant j'ai changé pour la nouvelle voie en créant un volume nommé:
docker volume create --name my-jenkins-volume
Que j'ai lié ce nouveau volume d'une nouvelle Jenkins conteneur.
La seule chose que j'ai laissé est un dossier dans lequel j'ai le /var/jenkins_home
de mon précédent jenkins conteneur. (en utilisant docker cp
)
Maintenant, je veux remplir mon nouveau volume nommé avec le contenu de ce dossier.
Je peux juste copier le contenu de ce dossier pour /var/lib/jenkins/volume/my-jenkins-volume/_data
?
Vous devez vous connecter pour publier un commentaire.
Vous peut certainement copier les données directement dans
/var/lib/docker/volumes/my-jenkins-volume/_data
, mais en faisant cela, vous êtes:En s'appuyant sur la physique de l'accès au panneau d'accueil. Cette technique ne fonctionne pas si vous êtes en interaction avec une télécommande support de l'api.
En s'appuyant sur un aspect particulier du volume de la mise en œuvre pourrait changer à l'avenir, la rupture de tous les processus que vous avez qui en dépendent.
Je pense que vous êtes mieux en s'appuyant sur des choses que vous pouvez accomplir à l'aide du support api, via la ligne de commande client. La solution la plus simple est probablement d'utiliser un helper conteneur, quelque chose comme:
docker volume inspect my-jenkins-volume --format '{{.Mountpoint}}'
pour obtenir de l'emplacement physique de la programmation. Encore ne se sent pas comme une grande idée.docker cp
et puis l'enlever./var/lib/docker/volumes/my-jenkins-volume/_data
lors de l'utilisation de menu fixe pour Mac ne fonctionne pas car les fichiers sont stockés à l'intérieur de la xhyve de la machine virtuelle. Voir forums.docker.com/t/var-lib-docker-does-not-exist-on-host/18314docker create
au lieu dedocker run
?docker create
au lieu dedocker run
Vous pouvez réduire la accepté de répondre à une ligne en utilisant, par exemple,
-v `pwd`:/src
implique que la commande est en cours d'exécution sur l'hôte? (Comment peut-accueil cartepwd
si c'est une machine différente, par exemple? -- il ne peut pas.) Si le panneau de commande n'est pas en cours d'exécution sur l'hôte, cela ne fonctionne pas. Je crois que c'est pourquoi nous avons docker cp. Cela semble comme il n'est pas "la voie" pour docker, c'est juste un cas particulier qui ne fonctionne que lorsque le panneau de commande est en cours d'exécution sur l'ordinateur hôte. Ai-je bien compris?pwd
doit correspondre à un fichier sur la machine hôte. À partir de panneau de montage de la documentation: "Dans le cas de lier les monts, le premier champ est le chemin d'accès au fichier ou un répertoire sur la machine hôte."Vous n'avez pas besoin pour démarrer un conteneur pour ajouter des données déjà existantes nommé volume, il suffit de créer un conteneur et de copier les données y: