This should work for -most- DVDs, unless they’re using some unique copy protection.
The following packages are needed: dvdbackup, libdvdcss, cdrtools
To get info on an inserted DVD (and check it can be read): dvdbackup -i /dev/sr0 -I
To rip the DVD to a directory (-M will mirror the disc): dvdbackup -i /dev/sr0 -o /path/to/store/dvd/ -M
And then to write the directory contents to an iso image: mkisofs -dvd-video -udf -o /path/to/save/movie.iso /path/of/ripped/dvd
From there you can archive the iso, mount it for playback, etc. My next step was a combination of MakeMKV and Handbrake to encode the main movie (H.265 MKV 480p30) for storage on a media server.
Replying to say dd is probably the better method for archival, but this works for me in most cases.