MongoDB Docker - Persist data

Hello everyone,
I’m fairly new to Rancher, Cattle and Docker.
I came across the blog entry on explaining how the catalog entry for building a MongoDB was created. However, I do not entirely understand how the data of the MongoDB gets persisted. As far as I know Docker images are stateless. Now I noticed there are two sidekicks in that catalog entry: one for configuration/scripts and the second one for data storage.

So:

  1. why does this work
    1.1 why can Docker store the data using another Docker image?
  2. how it is useful to have that in a separate image?
    2.1. Is it, so that you can update the mongoDB image without loosing the data?
  3. Is the data now really stored or can it still get lost?
  4. Sidekicks are a Rancher & Cattle solution-right? I’ve never heard of them related to Docker before

Are there more documents about sidekicks available? I only found a very short wiki article.

Can you give me any pointers?

Have a great day!