I’ve been studying Docker on Linux quite a bit at work. I recently got a new job where I am assigned to work on Docker on Linux proof of concept. I have been learning so much that it’s been really fun.
Of course, it’s not just for my own learning. I have been documenting what I have learned to share it with my team.
The very important thing I have learned is that Docker is not another VM technology. You try to do something like systemctl start whatever within a container, it will not work. You will get an error like the following.
Failed to get D-Bus connection: Operation not permitted
This is because Docker container is not a VM and there is no kernel, so as a result no service management system is present by default.
From what I have learned, a Docker container is like a service itself with an entry point. An entry point is a command that you execute when the container is created and started. So you have to treat Docker containers a little differently from regular full blown virtual machine. A container is an environment that has all the dependencies for you to execute code and it uses the host’s resources such as CPU, Memory and disk spaces directly.
I am going to blog more about what I have learned in the coming days and weeks and maybe months… Docker is very interesting!