Como posso compartilhar uma pasta entre o sistema host (ubuntu 14.04) e um contêiner ubuntu lxc?
Eu tentei montar a pasta no host:
sudo mount --bind /media/data/share /media/data/container/name/rootfs/share
mas não consigo ver nenhum arquivo.
O mesmo vale para:
sudo ln -s /media/data/share /media/data/container/name/rootfs/share
Preciso alterar as permissões da pasta de compartilhamento?
share
nolxc.mount.entry
é crítico.De acordo com a documentação do LXC, você pode fazer isso através de um contêiner privilegiado:
fonte
lxd
) conforme usado nesta resposta ou ao LXC (o software e o conjunto de ferramentas "antigo" com aslxc-*
ferramentas nomeadas)) ou ao projeto (onde o LXC é a abreviação de LinuX Containers). É a razão pela qual eu fiz essa pergunta na meta do Unix.SE.Abaixo está o que eu fiz para montar um diretório do meu host no contêiner. Isso é mais complicado do que parece, porque gostaríamos de alcançar
Depois de ler vários artigos on-line (o mais útil é esse problema do github ), aqui está como eu resolvo isso. O truque é mapear o uid e o gid do usuário host para o uid e o gid do usuário dentro do contêiner.
Suponha que eu seja montado
/home/breakds/projects
exatamente no mesmo local no contêiner. O diretório externo é de propriedade do usuáriobreakds
, cujos uid e gid são1000
.Criei um usuário no contêiner chamado
debian
, cujo uid e gid também eram1000
(porque é o primeiro usuário não root). Depois, criarei uma profie (lxc) no hostE abaixo está o conteúdo do perfil (acredito que esteja no formato yaml):
Em seguida, aplique esse perfil permanentemente ao contêiner:
Isso deve fazer o truque.
NOTA : Observe que, antes de mudar para este perfil, verifique se todos os diretórios ou arquivos cujo proprietário / grupo é debian devem ser excluídos (e provavelmente recriados após a troca). Isso ocorre porque após o mapeamento uid e gid, sua propriedade se tornará inválida. Inicialmente, pensei que, como estou apenas mapeando de 1000 a 1000, tudo deveria ficar bem, mas acho que perdi alguma coisa aqui e seria ótimo se alguém pudesse aconselhar sobre como resolver isso sem o hack.
fonte
chown
hospedar.Você também pode fazer isso sem o LXD editando o arquivo de configuração do LXC diretamente:
Você também deve garantir que a conta do usuário do contêiner tenha permissão para mapear para o uid / gid 1000 no host editando / etc / subuid e / etc / subgid:
fonte