The status of docker

Grzegorz Junka list1 at gjunka.com
Wed Jan 30 20:36:50 UTC 2019


On 27/01/2019 13:59, Stefan Bethke wrote:
> Am 19.01.2019 um 15:24 schrieb Grzegorz Junka <list1 at gjunka.com>:
>> Hello, does anyone know the current status of docker on FreeBSD? Wiki https://wiki.freebsd.org/Docker states it's experimental. The last commit in https://github.com/kvasdopil/docker/tree/freebsd-compat is also from 2015.
>>
>> There in fact are two ports, freebsd-docker (from 2015) and docker (18.06). What's the difference between them and which one should I use to run docker images on FreeBSD host?
> I believe at this point in time, all you can do is have a Linux machine somewhere (for example, in a local Bhyve VM), and use the Docker command line client from FreeBSD to manage it. That’s what sysutils/docker is for.
>
>> Has this project been completed and now only needs testing, or has it been abandoned, or maybe the approach has changed and I am looking in a wrong place?
> It looks abandoned, unfortunately.  And looking at the entire container infrastructure, reviving it would require a significant effort. For example, it most real-life usage scenarios, you want to be able to manipulate IPFW/PF entries to forward ports from a host interface into a container, which would require special plugins for Docker, or a compatibility shim that allows Docker to use iptables APIs/ABIs.
>
> Going even further, pretty much everything in the ecosystem (k8s, etc.) assumes it's running on top of a Linux kernel including a number of management APIs that are not (completely) emulated on FreeBSD.
>
> While I would love to see proper Docker support in FreeBSD, I’m not sure its even the right thing to aim for. In Docker production environments, people generally try to pare down the host OS to the absolute minimum, and at that point, what benefit would you derive from FreeBSD as a host?
>
> Similarly, why would you want to run FreeBSD-ABI containers, specifically? One of the benefits of the container ecosystem is that there are many ready-made images you can build on. Having to re-invent all of this seems of little benefit to me.

There is nothing docker-like in FreeBSD. Sure, we have jails and bhyve 
but they are faaar from the convenience and support of docker containers 
that you can pull directly from docker hub and have a complete 
application running in a few lines of code.

I am working on a project which uses two containers to run the back end 
- one is a customized container running Stellar + a DB and one running 
an off-the-shelf container with PostgreSQL. The middle layer is 
nodejs+GraphQL and front-end is React. It takes literally 30 minutes on 
a MacBook Pro from the moment you git clone sources from github to when 
you have the complete development environment running.

However, I spent a day trying to make it run in FreeBSD bhyve. Half of 
that time took preparing the FreeBSD host and installing and configuring 
a Linux host for containers in bhyve. But once everything was installed, 
nothing actually worked because the docker containers couldn't 
communicate with each other for some reason. I suspected some network 
issues within the Linux host and spent the other half of that time 
trying to sort it out.

Now if you consider that the cost of a MacBook Pro is a few days worth 
of work, why bother spending time (and money) trying develop the code on 
a FreeBSD? And if an AWS VM or other hardware is able to run the same 
already configured docker environment from a Mac, why bother spending 
time (and money) trying to run it on a FreeBSD server instead of a Linux 
server?

Currently the only reasons when someone might actually consider running 
FreeBSD server are: ZFS and/or jails (but for that you may also need to 
add IlluminOS and SmartOS to the list of choices) or when you already 
have teams/systems running FreeBSD. Ports are not a reason for choosing 
FreeBSD because Arch Linux also supports a rolling release model.

In many ways FreeBSD reminds me Amiga - I tried to use it for 
development, not just as a hobby at home, but also during my studies or 
work, and I was very proud when I could achieve, often with great 
effort, what others on IBM PC (and now Linux) had for granted. But at 
some point the effort of going against the flow was becoming too 
expensive, not only in terms of money or time, but also in more 
difficult to measure terms of missing opportunities.

I realize that running docker natively on FreeBSD is difficult and may 
seem pointless. But for me it's a matter of using FreeBSD or not. If I 
can make it working, maybe with some reasonable effort, that would be 
great and I would try. But if not, well, then it's hasta la vista, baby 
(for this project for now).

GrzegorzJ



More information about the freebsd-virtualization mailing list