Docker is a set of tools, that make it easier to work with some features of the Linux kernel. These kernel features allow several degrees of separating different processes from each other. For example, by default each Docker container you run will see its own file system, unable to interact (read: mess) with the original file system on the host or other Docker container. Each Docker container is in the end a single executable with all its dependencies bundled in an archive file, plus some Docker-related metadata.
I saw that my Jetbrains All Product Pack subscription also includes their AI assistant and in Go it’s really able to write and refactor things in a useful manner. But I think a large part is that I’ve been programming for 30 years and I am able to tell the thing exactly what I want and can mention things I do not want and also spot issues. Right now I don’t see how they can manage a complete codebase, which I understand vibe coding to be. There are just so many things than can (subtly) go wrong and AI at the moment is not able to help with that. But they also keep getting better, so who knows where we’ll be in a year or two.