I still use Docker at home to run local services, but over time I’ve been making tweaks, moving services around, and upgrading hardware.
What I have now is:
A physical fanless “scooter computer“ running Windows Server 2016 with Hyper-V enabled.
A single Hyper-V VM Ubuntu Minimal Server running Docker CE.
The fanless machine has cut down the noise levels in my home office, as well as drawing a little less power than the machine I had before.
I changed the Docker host OS from CentOS to Ubuntu, as I had a couple of weird cases where containers would die without explanation on CentOS. I tried Ubuntu and the problem went away. I didn’t bother investigating further.
My docker-compose.yml
This hasn’t changed much since my previous post, but I have now moved Plex to be a container too. Here’s the full compose file:
The one thing I’m so glad that has been added to Ubuntu is the support for netplan. To make my life easier with opening ports like 443 for multiple containers, I just use multiple IP Addresses, which is easily defined as an array in /etc/netplan/01-netcfg.yml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version:2 renderer:networkd ethernets: eth0: dhcp4:no dhcp6:no addresses:[192.168.0.10/24,192.168.0.11/24,192.168.0.12/24,192.168.0.13/24,192.168.0.14/24,192.168.0.15/24,192.168.0.16/24,192.168.0.17/24,192.168.0.18/24,192.168.0.19/24] gateway4:192.168.0.1 nameservers: addresses:[192.168.0.3,192.168.0.4] search:[example.local]
And then applying the changes:
1
sudo netplan apply
And then I can bind containers to those addresses, should they need their own separate IP from the host (very handy for the poste machine).
Updating Containers
Periodically I update my containers by just removing them, pulling down their latest images, and starting them all up again:
1 2 3 4 5
cd /opt/docker/compose/ sudo docker-compose stop sudo docker-compose rm sudo docker-compose pull sudo docker-compose up -d