What is a docker container

Every one of these docker discussions seems to assume the audience fully understands the issues. Not true! Explain to me like I'm 6.

(a) How "abstracted" is the relevant docker container? ie does it run on some sort of virtual machine, like node.js, so it can run pretty much everywhere?
Or is it strongly tied to a particular OS and binary? ie is it more or less hopeless to hope for say an Apple Silicon version given the existence of a "Synology" version?

(b) What's in this container? Is it some actual binaries? Or a web server and some pages? Or what? Again the question is ultimately how hard are we talking to see this ported to any other environments?

As a technical issue, why do these things seem mainly available as Synology docker images? Is that just because the first person who put one together had a Synology system and that was a convenient host?
I'm that assuming while people have a range of HTPCs, the most common versions are Windows x86, Mac x86, and Mac Apple Silicon, yet I never see these packages for those sorts of HTPCs, which surprises me.

Google is your friend...

I just asked Microsoft Copilot (powered by ChatGPT) exactly this question...

Explain docker like I'm 6 years old

Alright, imagine you have a toy box. Inside this toy box, you can put different toys like cars, dolls, or blocks. Each toy is separate and doesn’t mix with the others, so you can play with them one at a time without getting them all tangled up.

Docker is like a toy box for computer programs. It helps keep different programs separate so they don’t get mixed up. Each program goes into its own little box, called a “container,” and you can play with one program at a time without it messing up the others. This makes it easier to manage and run lots of different programs on the same computer.

Does that make sense? :blush:

Can you tell me more about containers?

Sure! Let’s dive a bit deeper into containers.

Imagine you have a lunchbox. Inside this lunchbox, you can pack different types of food like sandwiches, fruits, and snacks. Each type of food is kept separate in its own compartment, so they don’t mix together. This way, you can enjoy each item without any mess.

Similarly, a container in the world of computers is like that lunchbox. It packages up a piece of software along with everything it needs to run, such as code, runtime, system tools, and libraries. This ensures that the software runs consistently, no matter where it’s deployed1.

Here are some key points about containers:

Docker is a popular tool for creating and managing containers. It simplifies the process of packaging, distributing, and running applications in containers2.

Does that help clarify things a bit more? :blush:

1: What is a Container? | Docker 2: Docker for Beginners: Everything You Need to Know - How-To Geek

1 Like

I've been laughing about this since yesterday. :slight_smile: Absolutely brilliant combination of AI + humor! Keep 'em coming...

1 Like

Containers are a lightweight replacement for virtual machines.

In a VM, you virtualize all your hardware and boot a fresh kernel and OS image in the virtual environment.

With a container, the existing OS and kernel set up a sandbox which provides direct access to your hardware without virtualization. This means it uses less resources, boots up more quickly, etc. The container is technically just a filesystem tree containing a linux installation along with any custom application code and dependencies required.

Containers are a feature of the linux kernel. Docker on Mac and Windows works by setting up one virtual machine that runs linux, and then all your containers run inside that one virtual machine.

2 Likes

Imagine a hen house. Now, you can have a hen house made out of different materials. One will be wood, another brick, and the last chicken wire. These are your "Operating Systems".

It doesn't matter what your hen house is made out it, it can still hold chickens.

Now let's say you have three chickens in your hen house. One is named "Calculator", one is named "Solitaire", and the last one is named "Docker". These are "programs".


They're chickens; of course they can't spell well!

"Calculator" and "Solitaire" are rather simple chickens. They can basically peck at the ground and do nothing else. But "Docker" is special: she can lay eggs! These are "Images".

But here's the secret: Docker didn't really lay those eggs, she got them from someone else. They're not her eggs, but they can do amazing things. Each one can hatch multiple times! Usually, she only wants them to hatch once, but every once in a while she might need it to be multiple baby chicks. These are "Containers".

Although the baby chicks came from the eggs the chicken named "Docker" had, all the baby chicks live in their own magical realms. Each baby chick has a close relationship with their mommy, but they don't have anything to do with each other. They don't even know the other ones are there! This is what it means to be "containerized".

Now, the baby chicks might do things very similar to regular chickens like "Calculator" and "Solitaire", but most likely they have very special roles to play. Either way, they are safe in their little magic realms from each other and the regular chickens, and the regular chickens and the hen house itself are safe from them.

And everyone lived happily ever after. The End!

1 Like

OK, finally a response that's trying to answer the actual question. Thanks!
So we have an answer - the level of abstraction at which Docker Containers work is tied to Linux (and presumably the ISA, or alternatively a recompile to the target ISA).

Next question is, like I said, what's in this particular container? ie is recompiling it going to be trivial or major drama?

What is going through your head when you provide an answer like this?
Look at the questions I asked. Does your response tell me about the OS? About the ISA? About the portability of containers? About the targeting of Synology?

No, no, no, and no. But I'm sure it makes you feel smart...

Once in a while you get people that think being funny is a way to offer help. Ignore it.

To be fair you also asked for it be explained to a six year old. ChatGPT does an impressive job writing a story a six year old would understand and enjoy.

I'm not sure what particular docker container you're referring to, or what you mean by ISA.

Docker allows you to run x86_64 containers on Apple Silicon. But many authors also publish arm64 linux containers which can run natively.

4 Likes

Why are you so rude?

There are a number of excellent descriptions of what a Docker Container is in this thread yet that's not the real issue with all the nice docker solutions that have been developed to use with Channels. The issue is the lack of concise instructions how to configure them. There needs to be a documentation depository for them with the concise instructions so that a person does not need to read the long and rambling threads. Particularly care must be taken in the instructions to document what the inputs are and how the inputs map into channels and there needs to be examples.

For those that just want to watch content and are not computer developers, administrators, etc., Docker is a way to run a program (app). This is the simplicity that people need to make use of all these great projects.

3 Likes

That would be one approach. Another is for people to simply use Project One-Click. Fill in a few fields and with a click, the container is deployed and the custom channels source is added.

Here's a video example of this approach:

And another video detailing installing OliveTin-for-Channels, of which Project One-Click is a part:

Thank you!

This is a great example of a wonderful project that's totally hidden, at least to me and I've been here for a few years and thyse the reason there needs to be a depository for these projects.

The One-Click looks extremely easy to use and the video was clear. I like text instructions as well so that I can cut and paste.

The video with instructions to install OliveTin has tiny text that I could not make out on my 4K 32 inch monitor. There are plenty of instructional videos for installing Docker and Portainer so you don't need to make one.

So let me get this straight: you wrote...

And then when I do exactly as you asked in a fun and informative manner to help you and others understand the foundational aspects of Docker--something that your questions betrayed you completely lacked--you chose to lambast and demean all the efforts I made on your behalf in coming up with a concept, writing a story, and even illustrating it for you. Okay, buddy, have a nice life.

As a reminder: if you find any user particularly disagreeable, this function exists:

I believe I will take advantage to wipe out some of the negativity and sanctimonious claptrap (smart people words) around here.

4 Likes

Let me try to answer that in the least inflammatory way possible.

(a) People are opposed to AI slop. Why? Slop is (mostly) accurate BUT it's also frequently IRRELEVANT. Relevance is important.

(b) Communication is tough. Therefore, to specify a complex question requires a lot of detail: context, which specifies the level of answer required, and sub-questions which clarify the sorts of answers that are not required.
But it takes two to tango; a careful specification of a question assumes an equally careful reading by the replier. Condensing 500 words giving context and subquestions into "What is Docker" is not respectful of the questioner and is not useful. It's some sort of social act, but it's not ANSWERING the question.

e Level Above Mine is a constant problem in technical discussion. One part of humility is appreciating that this exists, and that if a question is posed at a level above one's competence, it's appropriate to accept that fact and try to learn from the answer, not just assume that even though the questioner is posing things at level N+1, what they REALLY must actually want is a level at the N-1 with which you are familiar.

1 Like

The elephant in the room here is that you asked a question that you could have easily done a youtube/google search for. The link i posted took me less than 10 seconds to find. So what is worse than you asking a question that you can easily find and answer for, is getting snippy with those who are nice enough to answer you. .

3 Likes

Welp this thread ran its course.

Closing it.