Estou executando o Docker no Ubuntu Linux. Eu tenho um Dockerfile
que traz muitos dados de outros lugares. Coloquei o Dockerfile
em uma unidade externa que montei no sistema de arquivos local (ext4). Então eu executei a compilação de dentro desse sistema de arquivos da unidade externa.
docker build -t mycontainer .
Observei 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 anexada.
Eu li alguns artigos sobre como alterar a raiz/base do Docker de /var/lib/docker
para outro local, mas até agora tudo o que recebo é docker.service: Failed with result 'exit-code'
.
Eu também tentei adicionar o -g options
no /lib/systemd/system/docker.service
arquivo:
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?
Várias coisas me ajudaram a fazer isso funcionar. Primeiro, eu estava montando o sistema de arquivos externo em um diretório inicial, o que pode estar causando alguns problemas de permissão. Então eu remontei o sistema de arquivos
/mnt
e atualizei as permissões e propriedade da seguinte forma:Então criei o
/etc/docker/daemon.json
arquivo com este conteúdo:Reiniciei o serviço docker e tudo parece estar bem. Fazendo um
docker build
e o drive externo está recebendo todo o conteúdo.