Here you have three different ways of drawing and connecting nested nodes without using nested tikzpictures.
The first one uses fit library to draw a fitting node which covers child and label nodes. The fitting node is the container. As the container is drawn after other nodes, if you want to fill it, the node has to be drawn on background layer.
%Container 1
\node at (0,0) (container1label) {Node 1};
\node [draw,below=0.4 of container1label] (child1) {Node 1's Child};
\node[fit=(container1label) (child1),draw] (container1) {};
The second one uses a matrix node as container.
container/.style={matrix, draw, row sep=4mm}
\node[container] (container1) {
\node (container1label) {Node 1}; \\
\node [draw] (child1) {Node 1's Child}; \\
};
In this case, there is no need to use background library if you want to apply special styles to matrix node.
The last one uses pics. A pic allows to draw complex figures (not only nodes) and replicate them without using nested tikzpictures
[pics/container/.style 2 args={
code={
\node (-clabel) {#1};
\node[draw, below=0.4 of -clabel] (-cchild) {#2};
},
background code={
\node[fit=(-clabel) (-cchild),draw,pic actions] (-ccont) {};
}}]
This pic has two arguments which are label and child text. I've used first solution, two nodes and a fitting one although similar results can be obtained with matrix solution.
All three solutions provide next graphic:

Please, look at complete code to understand how to use node labels in pic solution:
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{fit,positioning,backgrounds}
\begin{document}
\begin{tikzpicture}
%Container 1
\node at (0,0) (container1label) {Node 1};
\node [draw,below=0.4 of container1label] (child1) {Node 1's Child};
\node[fit=(container1label) (child1),draw] (container1) {};
%Container 2
\node at (6,0) (container2label) {Node 2};
\node [draw,below=0.4 of container2label] (child2) {Node 2's Child};
\begin{scope}[on background layer]
\node[fit=(container2label) (child2),draw,fill=red!30] (container2) {};
\end{scope}
\path (child1) edge[<->] (child2);
\end{tikzpicture}
\begin{tikzpicture}[container/.style={matrix, draw, row sep=4mm}]
%Container 1
\node[container] (container1) {
\node (container1label) {Node 1}; \\
\node [draw] (child1) {Node 1's Child}; \\
};
%Container 2
\node[container,fill=red!30] at (6,0) (container2) {
\node (container2label) {Node 2}; \\
\node [draw] (child2) {Node 2's Child}; \\
};
\path (child1) edge[<->] (child2);
\end{tikzpicture}
\begin{tikzpicture}[pics/container/.style 2 args={
code={
\node (-clabel) {#1};
\node[draw, below=0.4 of -clabel] (-cchild) {#2};
},
background code={
\node[fit=(-clabel) (-cchild),draw,pic actions] (-ccont) {};
}}]
\pic (c1) {container={Node 1}{Node 1's Child}};
\pic[fill=red!30] (c2) at (6,0) {container={Node 2}{Node 2's Child}};
\path (c1-cchild) edge[<->] (c2-cchild);
\end{tikzpicture}
\end{document}
pics, a new feature of version 3.0.0 of TikZ. An example of the latter can be found in How can I draw a TikZ element multiple times against a shaded background? – Claudio Fiandrino Jul 04 '14 at 08:03