That seems like it should work…maybe try using just c.Spawner instead of c.DockerSpawner? You can use c.Spawner.mem_limit = ‘8.0G’ instead of scientific notation.
The only other problem I can think of is if your docker isn’t using cgroups. If you run docker update --cpus=8 <container id> does that work?