Why not just run software on your server?
I don't get it
because the microservices were only designed to run in specific container OS environments and won't run on bare metal.
easier to replace
dockerhub is like an alternate package manager
but it is basically statically linked libs instead, making packages stateless/immutable
if you install on the server directly, then update some application dependency later, the app can break
this happens frequently just between dev machines and production because devs regularly have bleeding edge dependencies, while prod will have old "stable" ones
Because the cloud exists?
How does it compare to flatpack and snap
And FreeBSD jails
>update packages
>Service no longer works due to a dependency being too updated and deprecating code
At least that happened enough for me to justify learning Docker.
doesn't this bring up a new problem?
>Dependency X has a security vulnerability. Dependency X is required by software A, B, and C
You can either
>Update dependency X
or
>Wait for A, B, and C devs to release their updates
>pull new docker to get the update
>doesn't work server is down
>look at documentation
>"just use docker-compose up :)"
>google error no results
I thought this was supposed to make shit easier
cause my server is os is cli and i need muh gui on some applications
because portainer is easy to use and just werks.
>docker rootful
ngmi
very different use cases
I don't know what that means and I don't care.
a new guy joined our team, i handed him a docker compose file and he was immediately running our stuff on his machine.
>Why not just run software on your server?
I don't want to have to install 37362 packages weighing 3.2TB because some nigger didn't just make a static binary
Yes, in fact it can be a problem sometimes
>environmental isolation.
Applications require dependencies that can conflict and cause compatibility issue which created the need for utilities like Virtual Machines. VMs take up to many resources. NT, Linux and BSD are pretty heavy compared to a container with only the base utilities you need.
>immutability and desired state.
infrastructure should be predefined and protected from drift. versioning your application states allows you to easily test, validate and roll back if you have the need.
wtf are you talking about? static linking and docker are inherently heavier than dynamic linking
show us the error
>dependencies that can conflict
then why don't you just fix your shit?