I’ve been using LXC as a lightweight “virtualization” platform for over 5 years now, with great success. It allows me to take existing installations of entire operating systems and put them in containers. Awesome stuff. On my home server, I have a VNC terminal server LXC container that is separate from the host system.
Combined with ipvlan I can flexibly assign my dedicated server’s IP addresses to containers as required (MAC addresses were locked for a long time). Like, the real IP addresses. No 1:1 NAT. Super useful also for deploying Jitsi and the like.
I still use Docker for things that come packaged as Docker images.
Nothing too spectacular, I’m afraid. I had to consolidate some physical machines, all running Gentoo Linux. For each, I simply created a Gentoo LXC container and then replaced the rootfs (in /var/lib/lxc/NAME/rootfs) with the one from the physical server.
The significant changes from the physical systems were:
* rc_provide="net" in rc.conf because base networking is controlled externally
* rc_sys="lxc" may or may not be necessary
* Disable various net setup services
On the host OS (Debian) I have interfaces like this:
auto ipvl-main
iface ipvl-main inet manual
pre-up ip link add link eth0 name ipvl-main type ipvlan mode l2
post-down ip link delete ipvl-main
In the container config, they are referenced this way:
Combined with ipvlan I can flexibly assign my dedicated server’s IP addresses to containers as required (MAC addresses were locked for a long time). Like, the real IP addresses. No 1:1 NAT. Super useful also for deploying Jitsi and the like.
I still use Docker for things that come packaged as Docker images.