As we know in docker there exists something like storage-driver (like devicemapper, overlay2 and so on).
There exists some thing that I don't understand:
Container can access to volume or its own filesystem.
How is it possible that docker storage driver can intercept such request of I/O access? After all, code of storage driver must do the work, however, container is like process, so requests should be processed by OS. On the other hand, these requests must be processed by storage driver (after all, it may require some diving into deeper layers and so on).
Does it mean that each I/O request is processes by storage driver? How is it possible? What about accesses to volumes?