Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

What is shared between multiple copies of the Docker Sandbox?

avatar
Super Guru

I like to have multiple copies of the Hortonworks Sandbox for HDP. Typically these sandbox copies are used for specific demo scenarios. This has worked well with the previous VirtualBox-based sandbox. However, I'm wondering if there are problems when doing this with the Docker-based sandbox. Is there anything shared between docker containers based on a similar image?

To get around the problem before I knew the fix, I figured I would start with a completely new sandbox. So I repeated the installation procedure above, but gave the image a new name. Here is the output of docker images:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
sandbox-atlas       latest              1ade17087a83        34 hours ago        15.34 GB
sandbox             latest              fc813bdc4bdd        2 weeks ago         14.57 GB

There are two images. The sandbox image is the original import. The sandbox-atlas image is the new import.

  • So I create a new sandbox container using the sandbox-atlas image, which is a clean image.
  • I start up the container and try to load the Atlas UI and I'm surprised to find the exact same error!
  • I tried creating several different containers and they all behaved the same.

Here is the output of docker ps -a:

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS                       PORTS               NAMES
cc74035a2d71        sandbox-atlas       "/usr/sbin/sshd -D"   24 hours ago        Exited (255) 4 seconds ago                       hdp25-atlas-demo
381ff4de9d9c        sandbox             "/usr/sbin/sshd -D"   42 hours ago        Exited (0) 35 hours ago                          atlas-demo

You should notice that each container is using a different image.

Is there anything shared between docker containers based on a similar, but different image?

1 ACCEPTED SOLUTION

avatar
@Michael Young

Regarding your question - "Is there anything shared between docker containers?", I was just reading an article on the same and found that..

Your data doesn’t live in the container, it lives in a named volume that is shared between 1-N containers that you define. You backup the data volume, and forget about the container. Optimallyyour containers are completely stateless and immutable.

Source: https://blog.docker.com/2016/03/containers-are-not-vms/

More indepth details: https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/

Not sure, if this answers your question but thought to add it here.

View solution in original post

4 REPLIES 4

avatar
@Michael Young

Regarding your question - "Is there anything shared between docker containers?", I was just reading an article on the same and found that..

Your data doesn’t live in the container, it lives in a named volume that is shared between 1-N containers that you define. You backup the data volume, and forget about the container. Optimallyyour containers are completely stateless and immutable.

Source: https://blog.docker.com/2016/03/containers-are-not-vms/

More indepth details: https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/

Not sure, if this answers your question but thought to add it here.

avatar
Super Guru

@Ayub Pathan

This was very helpful information. I was thinking in the lines of VMs, which is wrong for Docker containers. I assumed that if I copied the base image and created a container from it, then the data would not be shared between the two.

What I found out is the container for the sandbox is mounting the /hadoop directory on the "host", which is actually the Hyperkit linux VM (on Mac). So even though I used different images and containers, they were sharing a common directory on the VM.

I'm going to try working around this by mapping my container's /hadoop directory to my local mac project working directory, not the hyperkit vm, to see if that keeps the data separate.

Thank you!

avatar

@Michael Young Thanks for sharing your findings, this is helpful.

avatar
Super Guru

I wasn't able to use the local mac directory for the /hadoop mount. The /etc/init.d/startup_script run in the container attempt to chown the users/groups to things that don't exist on my Mac. So I found an alternative approach that I think is working well.

I wrote an article that addresses the shared directory issue: https://community.hortonworks.com/articles/60584/how-to-manage-multiple-copies-of-the-hdp-docker-sa....