4 ms·
I would start with understanding what containers are. Read up on what namespaces and cgroups are. Understand first what a container is, what it gives you and ho
by jpgvm 4y ago
I would start with understanding what containers are. Read up on what namespaces and cgroups are. Understand first what a container is, what it gives you and how Docker (vs other containerizers) fits into the picture. The first fundamental thing to understand is that containers are merely processes that have some sandboxing and perhaps limits applied to them, mem_cg, CFQ throttling, etc.
Once you have that under your belt it's not hard to work out how Docker itself works and how you can use it to fulfill the sort of CI/CD objectives you have outlined. Docker itself isn't important, the semantics of containerization are.
Something that Docker (and Docker like things) take massive advantage of are overly filesystems like AUFS and overlayfs, you would do good to understand these (atleast skin deep).
Finally networking becomes really important when you start playing with network namespaces, you should be somewhat familiar with atleast the Linux bridge infrastructure and how Linux routing works.
Good luck!
- moonchrome 4y agoThat's like someone asking how to learn C and you suggest starting with assembly. It's the most roundabout way - and OP is conflating docker with CI/CD, referencing PHP and Node - it's probably safe to say they aren't looking for a deep dive. Plus - knowing how it runs under the hood doesn't mean you know how to use docker itself.
- prettyStandard 4y agoOP says they have used docker for a long time, and they want a deep dive. I think it's safe to say they do want a deep dive but might be forgetting to mention some of their reasons. For someone familiar with docker, maybe it is good to start from the other side and work backwards.
- gitfan86 4y agoUnfortunately this is the right answer. Over the past few years many engineering organizations no longer value anything beyond surface level understanding of the technology used in their stacks. You would think that is would still be advantageous to have a detailed understanding of what is going on in the stack, but that actually causes problems when you make a suggestion that no one else understands.
- allarm 4y ago> someone asking how to learn C and you suggest starting with assembly And this would be a great advice!
- Terretta 4y ago> start with understanding what containers are Docker implemented in around 100 lines of bash: https://github.com/p8952/bocker https://github.com/p8952/bocker This is the most mindblowing example for enterprise security teams that think Docker is a new threat on a single tenant Linux host. No, buddies, all this stuff is already there. If you were fine with your visibility before*, you're still fine. Go find a real problem while people play with their developer dopamine. * NARRATOR: They shouldn't have been.