Saltar al contenido

¿Cómo puedo agregar un volumen a un contenedor Docker existente?

Este enunciado fue aprobado por especialistas así se garantiza la veracidad de nuestra esta noticia.

Solución:

Puede confirmar su contenedor existente (es decir, crear una nueva imagen a partir de los cambios del contenedor) y luego ejecutarlo con sus nuevos montajes.

Ejemplo:

$ docker ps  -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED              STATUS                          PORTS               NAMES
    5a8f89adeead        ubuntu:14.04          "/bin/bash"              About a minute ago   Exited (0) About a minute ago                       agitated_newton

$ docker commit 5a8f89adeead newimagename

$ docker run -ti -v "$PWD/somedir":/somedir newimagename /bin/bash

Si todo está bien, detenga su contenedor anterior y use este nuevo.

Eso es todo 🙂

No tenemos ninguna forma de agregar volumen en el contenedor en ejecución, pero para lograr este objetivo, puede usar los siguientes comandos:

Copie archivos/carpetas entre un contenedor y el sistema de archivos local:

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH

docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

Para referencia ver:

https://docs.docker.com/engine/reference/commandline/cp/

He montado con éxito /home/ carpeta de mi host a la /mnt carpeta del contenedor existente (no en ejecución). Puedes hacerlo de la siguiente manera:

  1. Abra el archivo de configuración correspondiente al contenedor detenido, que se puede encontrar en /var/lib/docker/containers/99d...1fb/config.v2.json (quizás config.json para versiones anteriores de docker).

  2. Encontrar MountPoints sección, que estaba vacía en mi caso: "MountPoints":. A continuación, reemplace el contenido con algo como esto (puede copiar el contenido adecuado de otro contenedor con la configuración adecuada):

"MountPoints":"/mnt":"Source":"/home/","Destination":"/mnt","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":"Type":"bind","Source":"/home/","Target":"/mnt","SkipMountpointCreation":false

o lo mismo (formateado):

  "MountPoints": 
    "/mnt": 
      "Source": "/home/",
      "Destination": "/mnt",
      "RW": true,
      "Name": "",
      "Driver": "",
      "Type": "bind",
      "Propagation": "rprivate",
      "Spec": 
        "Type": "bind",
        "Source": "/home/",
        "Target": "/mnt"
      ,
      "SkipMountpointCreation": false
    
  
  1. Reinicie el servicio de la ventana acoplable: service docker restart

Esto me funciona con Ubuntu 18.04.1 y Docker 18.09.0

Puntuaciones y reseñas

Nos puedes añadir valor a nuestro contenido informacional dando tu experiencia en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *