es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No es posible persistir los datos de un contenedor Dremio Docker utilizando volúmenes.

Puedo obtener una instancia funcional de Dremio en Docker, pero me gustaría persistir los datos en el contenedor en mi equipo local.

Probé el enfoque mencionado en este post y creé mi propia versión de la consulta de ejecución de Docker, pero al ejecutar lo siguiente:

docker run --rm -v "/home/ubuntu/dremio/data/lib:/var/lib/dremio" -v "/home/ubuntu/dremio/data/localFiles:/localFiles" -v "/home/ubuntu/dremio/data/:/opt/dremio/data" -p 9047:9047 -p 31010:31010 -p 45678:45678 dremio/dremio-oss

Muestra el siguiente error al ejecutar en modo no separado:

Dremio está saliendo. Error al iniciar los servicios.
java.io.IOException: la ruta /opt/dremio/data no es editable.

Cualquier ayuda será apreciada.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para persistir los datos en el contenedor de Dremio en tu máquina local, puedes utilizar la bandera -v para montar directorios locales como volúmenes dentro del contenedor. Sin embargo, como se menciona en la publicación a la que hiciste referencia, es posible que encuentres problemas de permisos al intentar persistir datos en ciertos directorios.

    Una opción a probar sería modificar los permisos del directorio /opt/dremio/data en tu máquina local para permitir el acceso de lectura y escritura al usuario que ejecuta el comando Docker. Por ejemplo, podrías intentar ejecutar el siguiente comando antes de iniciar el contenedor de Dremio:

    sudo chmod -R 777 /ruta/a/dremio/data
    

    Luego, puedes modificar tu comando Docker para utilizar el directorio local como un volumen:

    docker run --rm -v /ruta/a/dremio/data:/opt/dremio/data -p 9047:9047 -p 31010:31010 -p 45678:45678 dremio/dremio-oss
    

    Ten en cuenta que la sintaxis de la bandera -v no debe incluir comillas alrededor de las rutas de los directorios.

    Si aún encuentras problemas de permisos, podrías intentar ejecutar el contenedor Docker en modo privilegiado utilizando la bandera --privileged, aunque esto podría tener implicaciones de seguridad.

    Otra opción sería utilizar un volumen de Docker en lugar de un directorio local, el cual debería manejar automáticamente los permisos. Puedes crear un volumen de Docker nombrado utilizando el comando docker volume create y luego montarlo en el contenedor utilizando la bandera -v:

    docker volume create dremio_data
    docker run --rm -v dremio_data:/opt/dremio/data -p 9047:9047 -p 31010:31010 -p 45678:45678 dremio/dremio-oss
    

    Esto debería crear un volumen persistente que se puede reutilizar en diferentes instancias del contenedor de Dremio.

Comments are closed.