Como informar ao Docker para armazenar e executar contêineres em uma unidade externa

1

Estou executando o Docker no Ubuntu Linux. Eu tenho um Dockerfile que traz muitos dados de outro lugar. Eu coloquei o Dockerfile em uma unidade externa que montei no sistema de arquivos local (ext4). Então eu corri a compilação a partir do sistema de arquivos do drive externo.

docker build -t mycontainer .

Eu assisti o uso da unidade enquanto o contêiner estava sendo construído. Todo o uso da unidade estava no sistema de arquivos raiz em vez da unidade conectada.

Eu li alguns artigos sobre como alterar a raiz / base do Docker de /var/lib/docker para outro local, mas até agora tudo que recebi é docker.service: Failed with result 'exit-code' .

Eu também tentei adicionar o -g options no arquivo /lib/systemd/system/docker.service :

ExecStart=/usr/bin/dockerd -H fd://  # original
ExecStart=/usr/bin/dockerd -g /new/path/docker -H fd://  # updated

Isso também não ajudou.

Como posso dizer ao Docker para usar a unidade externa?

    
por SunSparc 11.06.2018 / 17:22

1 resposta

1

Várias coisas me ajudaram a fazer isso funcionar. Primeiro, eu estava montando o sistema de arquivos externo em um diretório inicial, que pode estar causando alguns problemas de permissão. Por isso, remontei o sistema de arquivos para /mnt e atualizei as permissões e a propriedade da seguinte forma:

# chown -R root:root /mnt/external-drive/docker-base
# chmod 701 /mnt/external-drive/docker-base

Em seguida, criei o arquivo /etc/docker/daemon.json com este conteúdo:

{
    "graph": "/mnt/external-drive/docker-base"
}

Eu reiniciei o serviço docker e tudo parece estar bem. Fazendo um docker build e o drive externo está recebendo todo o conteúdo.

    
por 12.06.2018 / 20:31

Tags