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:
image: nfs-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"
privileged: true
container_name: nfs-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"
restart: always
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