docker-nfs-server icon indicating copy to clipboard operation
docker-nfs-server copied to clipboard

How to provide for Docker Volume ?

Open seepine opened this issue 1 year ago • 1 comments

I'm sorry, I can't find where the problem is, and I can only seek help here.

Nfs Server with docker-compose

In ubuntu24 server 192.168.100.134

services:
  nfs-server:
    image: erichough/nfs-server
    ports:
      - '2049:2049'
      - '2049:2049/udp'
      - '111:111'
      - '111:111/udp'
      - '32765:32765'
      - '32765:32765/udp'
      - '32767:32767'
      - '32767:32767/udp'
    privileged: true
    cap_add:
      - SYS_ADMIN
    environment:
      - NFS_EXPORT_0=/nfs *(rw,insecure,sync,all_squash,no_subtree_check)
    volumes:
      - './data:/nfs'

And the log

$ docker compose up 
[+] Running 1/0
 ✔ Container nfs-nfs-server-1  Created                                                                              0.0s 
Attaching to nfs-server-1
nfs-server-1  | 
nfs-server-1  | ==================================================================
nfs-server-1  |       SETTING UP ...
nfs-server-1  | ==================================================================
nfs-server-1  | ----> setup complete
nfs-server-1  | 
nfs-server-1  | ==================================================================
nfs-server-1  |       STARTING SERVICES ...
nfs-server-1  | ==================================================================
nfs-server-1  | ----> starting rpcbind
nfs-server-1  | ----> starting exportfs
nfs-server-1  | ----> starting rpc.mountd on port 32767
nfs-server-1  | ----> starting rpc.statd on port 32765 (outgoing from port 32766)
nfs-server-1  | ----> starting rpc.nfsd on port 2049 with 8 server thread(s)
nfs-server-1  | ----> all services started normally
nfs-server-1  | 
nfs-server-1  | ==================================================================
nfs-server-1  |       SERVER STARTUP COMPLETE
nfs-server-1  | ==================================================================
nfs-server-1  | ----> list of enabled NFS protocol versions: 4.2, 4.1, 4, 3
nfs-server-1  | ----> list of container exports:
nfs-server-1  | ---->   /nfs *(rw,insecure,sync,no_root_squash,no_subtree_check,fsid=1)
nfs-server-1  | ----> list of container ports that should be exposed:
nfs-server-1  | ---->   111 (TCP and UDP)
nfs-server-1  | ---->   2049 (TCP and UDP)
nfs-server-1  | ---->   32765 (TCP and UDP)
nfs-server-1  | ---->   32767 (TCP and UDP)
nfs-server-1  | 
nfs-server-1  | ==================================================================
nfs-server-1  |       READY AND WAITING FOR NFS CLIENT CONNECTIONS
nfs-server-1  | ==================================================================

For docker volume

version: '3.9'
services:
  db:
    image: postgres:16
    restart: unless-stopped
    ports:
      - 5432:5432
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: postgres
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres

volumes:
  postgres_data:
    driver: local
    driver_opts:
      type: "nfs"
      o: "addr=192.168.100.134,nolock,soft,rw"
      device: ":/nfs"

But i got error msg

failed to populate volume: error while mounting volume '/var/lib/docker/volumes/postgres_postgres_data/_data': failed to mount local volume: mount :/:/var/lib/docker/volumes/postgres_postgres_data/_data, data: addr=192.168.100.134: permission denied

seepine avatar Jul 18 '24 15:07 seepine

Try mount

$ sudo mount -v -t nfs -o rw,vers=3,nolock,proto=udp,port=2049 196.168.100.134:/nfs/nas ./nas_dir
mount.nfs: timeout set for Thu Jul 18 16:01:37 2024
mount.nfs: trying text-based options 'vers=3,nolock,proto=udp,port=2049,addr=196.168.100.134'
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: portmap query failed: RPC: Timed out
$ sudo mount -v -t nfs -o rw,vers=4,nolock,proto=udp,port=2049 196.168.100.134:/nfs/nas ./nas_dir
mount.nfs: timeout set for Thu Jul 18 16:04:39 2024
mount.nfs: trying text-based options 'nolock,proto=udp,port=2049,vers=4.2,addr=196.168.100.134,clientaddr=192.168.100.131'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'nolock,proto=udp,port=2049,vers=4,minorversion=1,addr=196.168.100.134,clientaddr=192.168.100.131'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'nolock,proto=udp,port=2049,vers=4,addr=196.168.100.134,clientaddr=192.168.100.131'
mount.nfs: mount(2): Invalid argument
mount.nfs: an incorrect mount option was specified for /home/seepine/nas_dir

seepine avatar Jul 18 '24 16:07 seepine