a Canvas example that shows how to drag multiple shapes inside of another shape. notice that the red circles can be dragged independently. notice that the black rectangle can also be dragged, keeping it's red-circle children in the same relative positions.
you could also think about this problem as "how to create a hierarchy of draggable shapes?". the short answer is: do it in the dragSubject()
function
d3-drag docs on drag subjects
a fork of Multiple Shape Drag SVG
an iteration on this very helpful stackoverflow answer
this collection of d3-drag experiments also exist in github repo form at micahstubbs/d3-drag-experiments
https://cdnjs.cloudflare.com/ajax/libs/d3/4.10.2/d3.min.js