Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

252
Vistas
¿Cómo montar el directorio actual como de solo lectura pero aún permitir cambios dentro del contenedor?

Tengo una situación en la que:

  • Quiero montar un directorio ~/tmp/mycode a /mycode solo lectura
  • Quiero poder editar los archivos en el directorio, así que no puedo simplemente ejecutar -v /my/local/path/tmp/mycode:/mycode
    • Sin embargo, quiero que no persistan los cambios en el sistema de archivos del host, así que no puedo montarlo en lectura/escritura
  • ~/tmp/mycode es bastante grande

Básicamente, quiero poder editar los archivos en el volumen montado pero que esos cambios no persistan.

Mi flujo de trabajo actual es crear un contenedor ficticio usando un dockerfile:

 ADD . /mycode

y luego ejecutar ese contenedor.

Sin embargo, a medida que crece el repositorio, este paso lleva más y más tiempo, porque la única forma que se me ocurre es hacer una copia completa de ~/tmp/mycode para poder manipular los archivos en el contenedor.

También pensé en montar el directorio y copiarlo dentro del contenedor y confirmar ese contenedor, pero eso tiene el mismo problema.

¿Hay alguna manera de ejecutar un contenedor docker para permitir la edición de archivos sin que persistan en el host sin copiar todo el directorio?

Estoy usando la última ventana acoplable para Mac, actualmente la versión 17.03.1-ce-mac5 (16048).

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esto es bastante trivial de hacer con la ventana acoplable y la superposición:

 docker run --name myenv --privileged -v /my/local/path/tmp/mycode:/mnt/rocode:ro -it ubuntu /bin/bash docker exec -d myenv /sbin/mount -t overlay overlay -o lowerdir=/mnt/rocode,upperdir=/mycode,workdir=/mnt/code-workdir /mycode

Esto debería montar el código de su directorio de solo lectura y crear la superposición dentro del contenedor para que /mnt/rocode sea de solo lectura, pero /mycode se pueda escribir.

Asegúrese de que su kernel sea 3.18+ y que tenga una superposición en su /proc/filesystems.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda