/ Docker / Linux

Desplegar NFS con Docker en Linux

Hola! Si necesitas utilizar el servicio NFS con Docker, sigue este artículo, verás los sencillos pasos y recetas para lograrlo.

Estas instrucciones son válidas y probadas en Centos7

Primero debes deshabilitar los puerto nativos que utiliza el NFS en tu OS

#Se puede pagar
sudo systemctl stop rpcbind
sudo systemctl stop rpcbind.socket
sudo systemctl stop nfs-server
sudo systemctl stop nfs-lock
sudo systemctl stop nfs-idmap

#O también deshabilitar
sudo systemctl disable rpcbind
sudo systemctl disable rpcbind.socket
sudo systemctl disable nfs-server
sudo systemctl disable nfs-lock
sudo systemctl disable nfs-idmap


Luego clonamos el siguiente repositorio

git clone https://github.com/richard24se/nfs-docker.git

Editamos el YML docker-compose.yml con nuestros datos

version"3"

services:
  nfs:
    imagenfs-centos    
    build
      context./nfs/
      dockerfile./Dockerfile
      #Args to build docker image, if change please build again
      args:
        #Shared Folder, which will be shared like a NFS Resources
        shared_folder"/test-folder-nfs1 /test-folder-nfs2"
        #Shared IP, which can be access to NFS resources
        shared_ip"192.168.1.24"
    privilegedtrue
    container_namenfs-centos
    #Mapping volumes that will be become in shared folder
    volumes:
      - /tmp/test-folder-nfs1:/test-folder-nfs1
      - /tmp/test-folder-nfs2:/test-folder-nfs2
    ports:
      - "2049:2049"
      - "111:111/udp"
      - "111:111/tcp"
      - "20048:20048/udp"
      - "20048:20048/tcp"     
    restartalways
    command>
      bash -c "exec /sbin/init && showmount -e 127.0.0.1 && sleep infinity"

En los argumentos para el build modificamos los siguientes:

  • shared_folder: ubicamos las carpetas que hemos mapeado al contenedor, puede ser una o pueden ser varias, es decir las carpetas que publicará el NFS
  • shared_ip: escribimos las ips que tendrán acceso a las carpetas del NFS

Luego de personalizar el docker-compose.yml, lo levantamos con el siguiente comando:

docker-compose up

Del lado de los clientes debemos instalar el cliente NFS, en este caso asumiremos que es Centos7, así que instalaremos con la siguiente línea de comando:

yum install nfs-utils -y