Monte a pasta host para convidado com LXC 2.x, mas faça isso somente leitura?

Monte a pasta host para convidado com LXC 2.x, mas faça isso somente leitura?

Observação:Esta questão está diretamente relacionadaEstee em especial paraesta resposta, mas não é uma duplicata.

Gostaria de compartilhar uma pasta do host com o convidado, mas certifique-se de que a raiz do convidado não possa gravar acidentalmente nessa pasta.

A pasta no meu caso é /toolchains, tanto no host quanto no convidado. E contém uma série de conjuntos de ferramentas baseados em GCC usados ​​para atingir diferentes plataformas.

Agora o compartilhamento em si é trivial:

lxc config device add CONTAINER toolchains disk source=/toolchains path=toolchains

Tecnicamente, parece ser uma montagem vinculada. No entanto, dentro do contêiner, uma remontagem para torná-lo somente leitura falha:

# mount -o remount,ro /toolchains
mount: cannot mount /dev/sda1 read-only

Infelizmente, isso não fornece um grande nível de detalhe.

Para garantir, também tentei esta alternativa:

# mount -o remount,ro,bind /toolchains
mount: cannot mount /dev/sda1 read-only

que foi mencionado mount(8)em mount --bind,ro foo foo...

Que opções tenho para alcançar o que desejo? Ou seja, compartilhe a pasta Host como somente leitura com o convidado. Devo usar algum tipo de união FS aqui ou é minha única chance real de obter uma montagem somente leitura para 1.) usar um compartilhamento CIFS ou 2.) usar algum gancho para montar a pasta Host por meio do mountcomando do Host no raiz convidada?

Estou usando o LXC 2.20.

Responder1

O que acontece se você montar seu diretório somente leitura no host e depois compartilhá-lo com o contêiner LXC?

mount --bind /toolchains /toolchains-ro
mount -o remount,ro,bind /toolchains-ro
lxc config device add CONTAINER toolchains disk source=/toolchains-ro path=toolchains

Tecnicamente, tudo o que é somente leitura no nível do host deve permanecer somente leitura no contêiner.

informação relacionada