The docker implementation with tezos is bad. https://gitlab.com/tezos/tezos/-/issues/548 It does not allow for many configuration parameters to be customized, and hard-codes many parameters too.
For your specific case, this can be solved by using an external mountpoint as the storage for the node like this:
Have you tried raising the tezos-node log level to INFO or DEBUG?
By increasing log level, your node logs become more and more verbose allowing you to follow step by step what happens under the hood when the node gets stuck.
You can find more information on logs configuration on the Octex documentation https://tezos.gitlab.io/user/node-configuration.html#...