For simplicity its easiest to imagine it as a simulator or emulator. Its not trying to be your machine (called the host machine) pretend it doesn’t actually use your os, or software.
Imagine each container is a fresh new machine on your desk with a blank hard drive. The image is basically the result of a set of instructions (a Dockerfile) that docker follows to install all the stuff you need to get the machine running.
Normally it starts by installing an os like alpine Linux (alpine publish this docker image and you simply build on top of that)
Then you install any extra utilities and software you might need to run the programming, maybe python or Java (again there are images themselves based on alpine managed and updated by official sources)
Finally you install what you want and tell the computer that’s what to run when it boots up (often the software you want to run gives an official docker image which has done all this for you)
So when you run a docker image its actually done all this setup for you already and just stored the resultsin a way that it can apply it straight to your shiny new container in an instant and be ready.
Docker compose is instructions on how to set up a bunch of computers with a network.
For simplicity its easiest to imagine it as a simulator or emulator. Its not trying to be your machine (called the host machine) pretend it doesn’t actually use your os, or software.
Imagine each container is a fresh new machine on your desk with a blank hard drive. The image is basically the result of a set of instructions (a Dockerfile) that docker follows to install all the stuff you need to get the machine running.
Normally it starts by installing an os like alpine Linux (alpine publish this docker image and you simply build on top of that)
Then you install any extra utilities and software you might need to run the programming, maybe python or Java (again there are images themselves based on alpine managed and updated by official sources)
Finally you install what you want and tell the computer that’s what to run when it boots up (often the software you want to run gives an official docker image which has done all this for you)
So when you run a docker image its actually done all this setup for you already and just stored the resultsin a way that it can apply it straight to your shiny new container in an instant and be ready.
Docker compose is instructions on how to set up a bunch of computers with a network.