Criando volume NFS no Docker
Volumes do Docker NFS
Introdução
Sabemos que volumes do Docker é uma funcionalidade para podermos persistir dados. Esses volumes são criados no host e montados dentro de um ou mais contêineres.
Sabendo disso, podemos imaginar também que o Docker nos permite usar volumes com diretórios compartilhados, certo? E nesse post veremos com utilizar esses diretórios compartilhados a partir de um servidor de arquivos remoto NFS utilizando o próprio driver do Docker.
Pré-requisitos
- Servidor NFS instalado e configurado na máquina remota.
- Docker instalado na máquina local.
- Uma conta de usuário com privilégios de root/sudo.
Criar Volume Docker NFS
A maneira mais simples de criar e gerenciar volumes do Docker é usando o comando docker volume
e seus subcomandos.
A sintaxe para criar um volume NFS Docker inclui duas opções.
--driver
A opção
--driver
define olocal
driver de volume, que aceita opções semelhantes aomount
comando no Linux.
--opt
A opção
--opt
é adicionada varias vezes para detalhar opções do volume.
Os detalhes incluem:
- O tipo de volume.
- O modo de gravação.
- O endereço IP ou nome do servidor NFS remoto.
- O caminho para o diretório compartilhado no servidor.
Ex:
docker volume create --driver local \
--opt type=nfs \
--opt o=addr=server-nfs,rw \
--opt device=:/opt/tabnews \
tabnews
O comando acima ilustra a criação de um volume NFS Docker chamado tabnews
. O volume contém o diretório /opt/tabnews
localizado no servidor, com a permissão rw
. O endereço IP do servidor é server-nfs
Obs: Verifique sempre se o seu compartilhamento esta criado em /etc/exports
no seu servidor NFS
Instalando Cliente NFS
Se sua distribuição usar YUM ou RPM para gerenciamento de pacotes, o pacote do Cliente NFS será:
sudo yum install nfs-utils -y
Se sua distribuição usar APT ou DEB para gerenciamento de pacotes, o pacote do Cliente NFS será:
sudo apt install nfs-common -y
Montando o Volume NFS no Container
Usando o comando abaixo, iremos criar um container chamado blog
e vamos montar o nosso volume NFS blog-4linux
criado anteriormente. Iremos usar a flag -v
para indicar o mount.
docker run -dit \
--name ubuntu \
-v tabnews:/opt \
ubuntu
Para validar o nosso volume
iremos utilizar o docker exec
para criarmos um arquivo em /opt
dentro do container e posteriormente verificar se o mesmo sera acessível no servidor NFS.
docker exec -it ubuntu touch /opt/criandovolume.txt
Obs: Se você criar um arquivo dentro do Servidor NFS, ele também estará acessível no diretório do container. Para testar, use o comando touch também para criar um arquivo vazio no /opt/tabnews
.