Should I be learning docker compose instead of relying on dockStarter to manage my containers? I got portainer up, should I just use that to manage my stack?
I’m committed this summer to finally learning docker. I’m on day 3 and the last puzzle piece is being able to access qbittorrent locally while running the container through the vpn.
I recommend Dockge over Portainer if you want a web admin panel. https://github.com/louislam/dockge
It’s basically docker compose in a website, and you can just decide one day to turn it off and use the compose files directly. No proprietary databases or other weirdness.
And it will convert a docker run command to a compare file.
And it has a beta feature where you can point it at a second server and it will manage that too.
It doesn’t seem to have the webhooks functionality that Portainer has though.
It also works in the “other” direction- if you’re already using compose files, you can point dockge to their existing location (stacks directory) and it will scan and pick them up!
That’s the one I use exactly because of that. I know compose, not going to learn another program to do the same, just want something that gives me an easier way to edit them than sshing into my box and using an editor.
If you’re learning in any kind of professional capacity, you may want to get familiar with running things on k8s. I would never deploy Compose in any kind of production environment.
I would never deploy Compose in any kind of production environment.
May I ask you why?
Aside from the myriad issues it has on its own, the easiest answer is: it doesn’t scale on multiple machines and instances.
Example: I have 10 services in a compose file, and I need each service to scale independently across multiple servers. Which is easier, more reproducible, and reliable: controlling the docker compose state across many instances, or communicating with a central management service with one command to do it all for me?
Sure, but what you are describing is the problem that k8s solves.
I’ve run plenty of production things from docker compose. Auto scaling hasn’t been a requirement, and HA was built into the application (so 2 separate VMs running the compose stack). Docker was perfect for it, and k8s would’ve been a sledgehammer.K8s isn’t the only container orchestration platform out there, it’s just what is the widely used flavor right now. Any of the micro clusters would still be better than the Docker tools, for a multitude of reasons, and if someone is learning about this right now, they might as well put the effort forth to get familiar.
I’ve never seen a large scale Compose or Swarm cluster, and wouldn’t be working for a team who ran such things. Alternatives would also be: ECS (if on AWS), Openshift, Rancher, and most other cloud platforms have some form of their own that handles provisioning, as well is IAM/RBAC seamless integrations, and other networking integrations for whatever platform.
Yah, IMO, if your goal is to learn how to really use and maintain Docker, then you don’t want a script getting in the way. Also IMO, DOcker is not that hard to learn (not that I am an expert yet).
I would recommend it as it is fairly easy to understand and most Foss services give you an example to use. You can also convert docker run examples to compose (search docker composeriser) although it doesn’t always work.
I found composer files easier when learning it, to digest what is going on (ports, networks, depends_on etc) and can compare with other services to see what is missing (container name, restart schedule etc). I can then easily backup the compose files, env files and data directories to be able to very quickly get a service up again (although DBs are trickier but found a docker image that I can stick on the compose files which backups the DB dumps regularly)
Yes, in an ideal world, you would learn all the tools the software offers so when a third party tool come along you know what problem it is trying to solve.
Just go for kubernetes
/s
I’ve been using DockSTARTer for years and it does what I need, when I need it.
If the goal is to learn, then go for learning Docker directly.
If the goal is to do it well and quickly, don’t reinvent the wheel.