My guess is you have one or more of your dockers misconfigured.
One reason I say that is because you have given docker image 50G, when 20G should be more than enough, and you have already used 23G of the 50G you have allocated. This most likely means you have an application writing to a path that isn't mapped. An unmapped path is a path inside the docker image.
However, that won't actually cause you to run out of RAM. It will just cause your docker image to fill up. Making it larger than 20G will not fix that problem, it will just make it take longer to fill.
What will fill RAM though is a docker mapping that isn't to actual storage. Any host path that isn't to the user shares or the disks is a path in RAM.
So, you probably have both situations.
Also, your appdata has files on the array even though it is cache-prefer. Not sure how you got them there unless you had changed the cache setting for appdata, or else you filled cache and appdata had to overflow to the array. Those probably can't be moved back to cache while dockers are running because mover can't move open files.
We will probably have to tear down your dockers and figure out what you have done with them.
Which dockers do you run?