Docker Symlink da pasta compartilhada no virtualbox

1

Estou trabalhando em um servidor de teste no meu computador. Onde eu instalei o servidor Ubuntu, como uma VM em caixa virtual.

Versão 5.2.8.r121009

Especificações:

  • Ubuntu 17.10 4.13.0-21-genérico
  • Versão do Docker 18.04.0-ce, compilação 3d479c0

Eu criei duas pastas compartilhadas.

root@docker:/var/lib/docker# ls /media/ -l
totalt 4
drwxr-xr-x 2 root root   4096 mai    8 23:15 cdrom
drwxrwx--- 1 root vboxsf    0 mai    8 23:46 sf_docker-compose
drwxrwx--- 1 root vboxsf    0 mai    9 00:17 sf_docker-volumes 

Quando faço

service docker stop && \
rm -fr /var/lib/docker/volumes && \
ln -s /media/sf_docker-volumes /var/lib/docker/volumes && \
service docker restart && \
docker ps

Eu recebo o seguinte erro

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. 
Is the docker daemon running?

Então eu reverti para os padrões:

service docker stop && \
rm -fr /var/lib/docker/volumes && \
service docker restart && \
docker ps

E tudo está funcionando novamente.

Então, minhas perguntas são, como posso corrigir os problemas de permissão que recebo usando um link simbólico para a pasta / var / lib / docker / volumes /. Tenho certeza de que o problema é que o proprietário do grupo do symlink é vboxsf e não root. mas eu não consigo mudar isso.

    
por BD Bear 09.05.2018 / 00:40

2 respostas

0

Para alterar a propriedade do seu link simbólico, tente o seguinte comando e veja se ele resolve o problema. Um sudo pode ser necessário.

 chown -H myuser:mygroup mysymbolic
    
por s1mmel 13.05.2018 / 02:52
0

Depois de muita trilha e erro, eu descobri o que estou tentando fazer. não é possível. pelo menos não de maneira direta. O sistema de arquivos, esse uso de caixa virtual para as pastas compartilhadas, é somente leitura para o sistema, mas para os usuários é leitura-gravação. (porque eu não descobri.)

O que eu quero é uma experiência perfeita, na qual não preciso copiar e colar manualmente os arquivos, mas, na minha vida, não consigo descobrir como fazer isso.

A única coisa perto de uma solução de trabalho é editar meu arquivo fstab e adicionar a montagem lá.

docker /docker    vboxsf  defaults,uid=1000,gid=1000,umask=0022   0       0

crie um ascript que faça isso para mim

rm -fr /docker/* && \
mkdir /tmp/docker && \
cp -r /var/lib/docker/volumes/* /tmp/docker &&\
sudo chown -H bdbear:bdbear /tmp/docker && \
mv /tmp/docker/* /docker

Isso faz metade do trabalho para mim, então é okey. mas uma solução automática seria muito mais fácil.

Talvez eu implemente Inotify-tools para tornar isso totalmente automático. Mas, por enquanto, acabei de recortar Toda a idéia de trabalhar neste pequeno projeto. Eu tentei usar o Rsync , mas ele me deu um erro de protocolo, relacionado ao sistema de arquivos somente leitura.

    
por BD Bear 13.05.2018 / 19:32