Docker Community Forums

Share and learn in the Docker community.

Problem with NFS Volume in Docker

Hello,

I’ve. problem like others mounting external volumes with Docker, in particular with NFS.

In my case I’m using a graphite container trying to store data on an NFS mounted directory.

No matter if I mount the NFS in the container (via volume) or in the docker host, I get the same error, which is not present when the directory is local.

I also tried to enter into the docker shell and I’m able to create/delete files from the mounted directory without any problem, so apparently it’s not a permission issue.

====
This is my error

graphite_1 | 11/03/2019 07:06:30 :: [console] Error creating carbon.agents.2fe0e1ff2c9a-a.metricsReceived: [Errno 95] fallocate
graphite_1 | 11/03/2019 07:06:30 :: [console] Unhandled Error
graphite_1 | Traceback (most recent call last):
graphite_1 | File “/opt/graphite/lib/python3.6/site-packages/twisted/python/threadpool.py”, line 266, in
graphite_1 | inContext.theWork = lambda: context.call(ctx, func, *args, **kw)
graphite_1 | File “/opt/graphite/lib/python3.6/site-packages/twisted/python/context.py”, line 122, in callWithContext
graphite_1 | return self.currentContext().callWithContext(ctx, func, *args, **kw)
graphite_1 | File “/opt/graphite/lib/python3.6/site-packages/twisted/python/context.py”, line 85, in callWithContext
graphite_1 | return func(*args,**kw)
graphite_1 | File “/opt/graphite/lib/carbon/writer.py”, line 189, in writeForever
graphite_1 | writeCachedDataPoints()
graphite_1 | — —
graphite_1 | File “/opt/graphite/lib/carbon/writer.py”, line 142, in writeCachedDataPoints
graphite_1 | state.database.create(metric, archiveConfig, xFilesFactor, aggregationMethod)
graphite_1 | File “/opt/graphite/lib/carbon/database.py”, line 145, in create
graphite_1 | self.sparse_create, self.fallocate_create)
graphite_1 | File “/opt/graphite/lib/python3.6/site-packages/whisper.py”, line 528, in create
graphite_1 | fallocate(fh, headerSize, remaining)
graphite_1 | File “/opt/graphite/lib/python3.6/site-packages/whisper.py”, line 93, in _py_fallocate
graphite_1 | raise IOError(res, ‘fallocate’)
graphite_1 | builtins.OSError: [Errno 95] fallocate

and this is the docker-composer I use (/opt/data is mounted via NFS) as I said I also tried to mount the NFS dir in the container, result and error is exactly the same.

===
version: ‘2.1’

services:
graphite:
image: graphiteapp/graphite-statsd
volumes:
- /opt/data/graphite:/opt/graphite/storage
networks:
net8:
ipv4_address: 192.168.8.130
net100:
ipv4_address: 192.168.100.130
default:

graphana:
image: grafana/grafana
networks:
default:
ports:
- “3000:3000/tcp”

networks:
net8:
external: true
net100:
external: true