Hello. Let me try to describe my idea, basing on a example and hipotetical situation.
I would like to create and publish (to share with the community) in docker hub tools set’s and other stuff I would create.
Currently, I would need to install separatelly all docker and docker-compose related packages to get all required functionality, with is time consuming.
If there would be an all-in-one docker package then people could use it as “out-of-the-box”
I still don’t understand your idea, and I’ll explain why… it is assumed that when you install Docker-Desktop… you already have the docker all-in-one… which includes docker composer and docker-network and even a series of tools that facilitate the configuration and interaction between: User, Host OS and WSL/Kubernet…
From here the only thing you are supposed to do or download is the specific images you want to use and/or configure your YML/Dockerfile so that the downloaded image is modified to your needs.
We are living in the world of modularity and even microservics. If you want, you can create an environment that contains everything but that is not Docker’s job. Just a couple of ideas:
Vagrant is similar to Docker except Vagrant is for creating a virtual machine in which you can install Docker automatically and contain all the images.
Ansible is to define states you want to see on a remote (or local) machine. The state could be having Docker installed and a compose project started.
You could create a simple script that supports a specific operating system / Linux distribution and install your application.
Docker can’t do all our jobs to distribute and deploy our applications as everyones use case is different. Installing some components is quite easy or should be. But it is not for everyone. That’s why we need to make sure we properly support the installation of our software. As @arcanisgk wrote, you can install Docker Desktop and you indeed get Docker Compose and the docker command and a vitual machine with Docker daemon inside and a GUI on top of the VM. You can also read and watch my tutorial in which I use Ansible to create a virtual machine on Linux and install Docker inside it. That is a different usecase of course. This is the last episode of the series.
There was a project which is archived now. It was for Docker Compose projects to be able to push the entire project to Docker Hub, but you still needed to install Docke ron your machine.
Even it could not be popular enough to keep the project.
True. It seems I was not clear enough, but I wanted to say the same. Thank you for making it more obvious The project was archived which tells me that the feature was removed, but indeed it is just because I knew what happened.
Another idea that may be plausible is to create a script (OS Scripting) that deploys the needs they have or create software that does this for he with a graphical interface.
I am working on something similar, for LAMP environments, devilbox already exists but I don’t like the idea of having Docker within Docker, therefore I am working on a graphical interface in .net/C# that handles the deployment of LAMP Servers for projects by implementing a docker infrastructure.
On a side, I wanted to bring into Your attention (as a side notice) that Docker and all related to it packages are distributed differently for Windows operating systems and differently for ones like for example Linux.
For example, for Windows it may be something alike All-in-one, but for Linux (with I use) each of them are dustributed separatelly.
Docker Desktop is a different product. It is supported on Windows, Linux and macOS. It contains the daemon of Docker CE and installs the CLI including compose, but you will have a virtual machine which is the only way to run Linux containers on macOS and Windows, but you don’t need it on Linux. On the other hand, you can have Docker on Windows without the desktop but you can only run Windows containers and there is no native container support for macOS.
The development curve of an Operating System from scratch based on the Linux kernel is here:
and it is not at all simple, the advantage is that if you implement a VM as a reference machine you guarantee compatibility… if you do it as independent software, you will need to go through many modules and hardware layers to deliver something stable and you will always have new hardware to support and bug to solve…
First, I know what an Linux is, since I use it for over 23 years
Second, the system I plan to build will be modular, so I would need to take less care of at once (I had splited myself the work into steps for more organized work)