¿Cuál es la forma correcta de agregar datos a un volumen con nombre existente en Docker?


Estaba usando Docker de la manera antigua, con un contenedor de volumen:

docker run -d --name jenkins-data jenkins:tag echo "data-only container for Jenkins"

Pero ahora cambié a la nueva forma creando un volumen con nombre:

 docker volume create --name my-jenkins-volume 

Vinculé este nuevo volumen a un nuevo contenedor Jenkins. Lo único que me queda es una carpeta en la que tengo el /var/jenkins_home de mi contenedor jenkins anterior. (utilizando docker cp) Ahora quiero llenar mi nuevo volumen con nombre con el contenido de esa carpeta.

Puedo simplemente copiar el contenido de esa carpeta a /var/lib/jenkins/volume/my-jenkins-volume/_data?

 30
Author: Makoto, 2016-05-26

2 answers

Usted puede ciertamente copiar datos directamente en /var/lib/docker/volumes/my-jenkins-volume/_data, pero al hacer esto usted es:

  • Confiar en el acceso físico al host de docker. Esta técnica no funcionará si interactúas con una api de docker remota.

  • Confiar en un aspecto particular de la implementación de volumen podría cambiar en el futuro, rompiendo cualquier proceso que tenga que confiar en él.

Creo que es mejor confiar en cosas que puede lograr usando el api docker, a través del cliente de línea de comandos. La solución más fácil es probablemente usar un contenedor auxiliar, algo así como:

docker run -v my-jenkins-volume:/data --name helper busybox true
docker cp . helper:/data
docker rm helper
 56
Author: larsks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-15 09:16:20

Puede reducir la respuesta aceptada a una línea usando, por ejemplo,

docker run --rm -v `pwd`:/src -v my-jenkins-volume:/data busybox cp -r /src /data
 9
Author: headdab,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-18 16:20:40