Por que alguns volumes de host nos contêineres do Docker fornecem o erro “muitos níveis de links simbólicos”?

7

Estou executando o docker com um diretório de host montado:

$ docker run -v /usr/groups/thing -ti imagename /bin/bash

Os arquivos em /usr/groups/thing/foo estão acessíveis:

# ls /usr/groups/thing/foo
a b c

Mas os arquivos em /usr/groups/thing/bar não são:

# ls /usr/groups/thing/bar
ls: cannot open directory /usr/groups/thing/bar: Too many levels of symbolic links

Isto está no Debian, e /usr/groups/thing é um volume NFS montado automaticamente.

    
por Peter Westlake 30.10.2014 / 15:41

1 resposta

7

Isso é causado por diretórios não serem automontados quando o contêiner é executado. Eu tinha pensado que /usr/groups/thing era o ponto de montagem automática, mas evidentemente os subdiretórios são montados automaticamente individualmente. A solução é certificar-se de que cada uma esteja montada antes de entrar no contêiner:

$ (cd /usr/groups/thing/foo; cd /usr/groups/thing/bar)
$ docker run -v /usr/groups/thing -ti imagename /bin/bash
# ls /usr/groups/thing/bar
d e f
    
por 30.10.2014 / 15:41