Tuesday, February 2, 2016

Docker machine - wonderful idea, too many bugs?

When doing various experiments with docker, I painfully realized that btrfs keeps a lot to be desired.

Wonderful idea, terrible user experience. First of all, df lies, and you are supposed to run btrfs balance often. Maybe it's because of the way docker uses it - it creates a ton of large images.
Eventually you touch all chunks and rebalance stops working completely. Now you desperately delete things, hoping to get chunk free and let rebalance get thins back to order. Or not - and you end up nuking the server and reinstalling.
Or you perhaps end up crashing up the server and the btrfs won't mount anymore...

So after going through 5 servers (OL7.1 in VBox), I moved onto docker-machine. Wonderful idea - and it does not use btrfs, yay!

However, it also has it's bugs... and pretty ugly. First of all, the latest stable boot2docker 1.9 has a kernel bug that causes Java process to become zombies and docker container won't finish. See https://github.com/docker/docker/issues/18180 . In my case, it means that Oracle database software installation never finishes.

Ok, the link says it's fixed in the upcoming 1.10 image. And indeed it does - and it's very easy to switch to it, just add --virtualbox-boot2docker-url=https://github.com/boot2docker/boot2docker/releases/download/v1.10.0-rc2-b/boot2docker.iso or similar to docker-machine create. Oracle then installs fine.
However, another bug that emerges: nobody can ptrace a process. Which includes gdb - it cannot attach to a running process, becoming completely useless.

Attaching to process 24

ptrace: Operation not permitted.

Let's hope this is fixed soon...
(See my post at https://forums.docker.com/t/boot2docker-mac-os-x-10-0-failing-ptrace-gdb/6005 )

No comments: