Sorry for taking so long to follow up; I've been out of office for a while.
I believe you could accomplish what you want with a little extra work. renv::restore() accepts a packages argument; you could supply the names of only the packages that aren't currently installed and request renv install or restore those packages specifically.
That said, you may run into issues if you find that the package requirements of the currently-installed packages differ from those requested in the lockfile.
Finally, renv maintains installed packages in a global package cache. If you had a way of sharing that cache between different Docker containers (e.g. via a mounted volume) that could also solve the issue you're seeing. Using renv with Docker • renv may be useful.