Hello everybody, happy Monday.

I’m hoping to get a little help with my most recent self-hosting project. I’ve created a VM on my Proxmox instance with a 32GB disk and installed Ubuntu, Docker, and CosmOS to it. Currently I have Gitea, Home Assistant, NextCloud, and Jellyfin installed via CosmOS.

If I want to add more services to Cosmos, then I need to be able to move the containers from the VM’s 32GB disk into an NFS Share mounted on the VM which has something like 40TB of storage at the moment. My hope is that moving these Containers will allow them to grow on their own terms while leaving the OS disk the same size.

Would some kind of link allow me to move the files to the NFS share while making them still appear in their current locations in the host OS (Ubuntu 24.04). I’m not concerned about the NFS share not being available, it runs on the same server virtualizing everything else and it’s configured to start before everything else so the share should be up and running by the time the server is in any situation. If anyone can see an obvious problem with that premise though, I’d love to hear about it.

  • OneCardboardBox@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    16 hours ago

    If you want to move your containers to a different location, look into configuring docker’s data-root: https://stackoverflow.com/questions/24309526/how-to-change-the-docker-image-installation-directory

    You copy /var/lib/docker to a new location and update /etc/docker/daemon.json

    I will say: Moving data-root to an NFS mount isn’t going to work well. I’ve tried it, and docker containers rely on filesystem features to run their overlays. On an NFS, this feature isn’t present, so your services will duplicate the container’s entire filesystem. This will tank your performance and is basically unusable for anything but trivial examples. Docker data-root basically needs to be a “physical” disk.

    I’ve had no issues using NFS shares mounted as docker volumes. It’s just the data-root where it’ll fail.