
With me so far? One other important concept is the use of environment variables for any instance-specific configuration, the image should check for whatever relevant environment variables it might utilize and fall back to sane defaults. Networks: Docker uses internal private networks for containers by default instead of giving them virtual network interfaces on the outside network, you can “expose” ports on the container from the docker host instead though.You can also bind mount a directory on the host machine into a container as a volume. Volumes: A volume is for persistent storage of files, think of it as an external drive for a container.This may seem counter-intuitive, but you’ll see why this is so powerful later on.


Containers are generally regarded as expendable unless you’re putting together a new image.

The hypervisor creates a “virtual machine”, in that it provides virtual RAM, CPU cores, hard drives, network interfaces, and other hardware. With virtualization, we use a hypervisor on the operating system, (like we’re doing with Proxmox, which uses the Linux KVM hypervisor). If you don’t have any extra hardware but are up for doing a little shopping, I have some recommendations here.ĭocker is a containerization tool, before we get into all that let’s first talk about how virtualization works a bit, just to express the differences from containerization. This is best done with some extra hardware for pfSense, it can be done while keeping pfSense as a VM but I don’t recommend it unless you have a cluster of Proxmox hosts to enable high availability (HA) on the pfSense VM. I will soon be covering the process of migrating the home lab pfSense instance to serve the entire home network, so we can make better use of pfSense and make accessing VMs a lot easier.
