[Guide] Move Your Docker Image and Appdata to an Unassigned Drive (DEPRECATED)

Just a note that if you look at the steps now, there appears to be a regex substitution that will copy over the slave settings in each docker image

I’m getting an error when running step 10. Any advice?
Edit: I finished the rest of the steps and it seems like it is working, but I’d guess I still want that step to run?

That’s strange, I don’t see any errors in the command you entered. The good news is that specific command just switches the appdata map to slave mode, so it can be done manually. The downside is you’ll need to change it on every container individually. Go into the container config, click the switch in the upper right to switch to advanced view, then edit the appdata map and change the Access Mode to rw,slave. Then save the config and move to the next one.

That is odd. Well, at least I can do it manually. Thanks for the guidance! I can definitely tell how much faster Plex is at loading art.

Question for you. Why the need to change the access mode when moving it to an unassigned device? And do I need to change that whenever I download a new docker?

Setting the mount to slave mode ensures the container will be able to see the files contained inside it. Any folders you map that are on an unassigned drive need to mounted in slave mode. Step 10 above changes the templates for the containers so if you ever reinstall the same container it will mounted properly. If you install a new container, you will need to update it manually.

FWIW, I haven’t changed to the slave option and haven’t had any issues with my containers. :woman_shrugging:

I probably should though.

I failed to do this when I made the change. Everything worked fine for about 3 days. Then I find that I had a run away log issue that was bringing my server to its knees and had to go back and fix all of my dockers.

I just made an account to say thank you so much @Mthrboard. The only hiccup I ran into was having to redo each Docker path, but thats acceptable for how simple the rest of this was.

Your description as why to do this too was exactly what I was experiencing and was trying to find a good way to go about doing this. Offloading my appdata to my nvme, and leaving my downloads folder on the SSD/Cache, because of the absurd IO wait I was experiencing.

Thanks again!

1 Like

Will this allow us to run docker images with the array stopped?
Given the amount of energy my SAS array takes and is still and issue of unraid not spinning down SAS drives, I want to be able to power up the server without the SAS shelve sometimes, but still be able to use some dockers and VMs,
My unraid is telling me Docker will start once the array is working… I already have my docker images in the cache drive.

No, you still need the array running to run any docker containers or virtual machines, even if those containers and VMs don’t touch the array.

I followed the instructions to a T but its not worked properly. When I startup Unraid I have to disable Docker before starting the array and then when its started I can turn on Docker but quite a few of them don’t work and the docker screen looks like this:

Could someone help please? Or at least get me back to how it was!

Worked great and the 10+ dockers we have running at any given time are much more responsive. Nice to be able to get some use out of this old Samsung SM951 256GB PCIe SSD (AHCI Version) that has been collecting dust since its last use in a Z97 build while being faster than a SATA SSD.

Now that 6.9 is officially released, are there any special steps to take before the upgrade from 6.8.3 and having docker/app data on an unassigned drive or will everything transfer over?

I didn’t run into any issues when I upgraded, but I would recommend making a backup of your 6.8.3 flash drive (the full zip backup where you click on your flash drive in the main tab of the dashboard and click the Flash Backup button) before you upgrade.

2 Likes

On 6.9.1, I created a new cache pool to move my docker and VMs to. Is moving them manually still required? I changed the 'Select Cache Pool" to the new cache pool and tried running the mover with the shares set as ‘prefer’, 'yes, ‘only’ but they don’t get moved from the ‘Cache’ pool to my new ‘vm_docker’ pool. Any advice? I don’t mind moving them manually if it’s just a one time thing since it is already sitting on the other pool. Just don’t want to mess something up if that’s not recommended.

Edit: forgot to mention, the docker and VM are turned off in unraid while I’m doing this (the tabs are not present).

Do not use the “only” option.

This is similar to the cache SSD swap procedure. Turn off docker/VMs, set the appropriate shares to cache=yes, run the mover. When it’s done, set the same shares to cache=prefer:(new cache location) and run the mover again. Once that’s done, your docker containers and VMs will be moved. Then you can turn the services back on.

I was trying to get it to move from one SSD pool to the other without hitting the array since it takes a long time for it to write there. I ended up just manually moving the folders in /mnt/cache to /mnt/vm_docker_pool and set those to Only:vm_docker_pool. I don’t want it to try to write to the array for any reason on these shares.

If we have this set up, how can we “undo” it now that we can use cache pools to store the appdata?