Swarm Upgrade from 17 to 19

Is it safe to simply upgrade all my managers from 17 to 19 first, then upgrade all my workers from 17 to 19?

If not, is it best to move all managers from 17 to 18, then workers from 17 to 18, then do it again from 18 to 19?

I have tried looking all over the docs for a proper upgrade path, but it seems not very much thought has been put into it.

Thanks all!

A documentation for update paths is only available for Docker Enterprise and its components. I am afraid you will need to skim through the release notes and check if the used storage driver is still available/supported for your os. Changing the storage driver might have an impact on how to manage docker volumes.

If we assume that all persistent data is stored in named volumes (or in bind-mounts), where the data is stored outside /var/lib/docker then it should be fine to remove the containers, update your engine and recreate them again.