title: How does Docker allow portable containers if the Kernel libraries change
body: <p>If my program depends on some function of a kernel library, and that function in turn has a chain of dependencies, how does docker stay small and portable without taking a snapshot of all the kernel libraries (and managing dependency issues at a function rather than library level)?  In other words how does it insulate itself from changes in Kernel libraries from one version to the next, and does it do so at a library or function granlarity?</p>
  
  <p>Also what if my application has a software stack where for example one function is compatible with a future version of kernel library A whereas a second function that uses kernel library A is no longer compatible.  In other words:</p>
  
  <p>function 1&amp;2 both depend on and work with functions in kernel Lib A version 1.0</p>
  
  <p>function 1 works with Lib A version 1.1
  function 2 breaks with Lib A version 1.1 (function 2 still needs Lib A version 1.0)</p>
  
  <p>I don't know much about Docker so this is a newbie question.</p>