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