Feasibility of using Docker to isolate ROS and other tools in Robotics

I am very new to Docker and I want to use it to isolate ROS (Melodic), OpenCV and Deep Learning libraries. I have Ubuntu 18.04 LTS running with CUDA, Eclipse, cmake and a few other basic tools installed. Ideally, I would like three isolated entities, one each for ROS, OpenCV and Deep Learning Libraries. These three isolated entities should run on top of the image of existing Ubuntu platform. When I install a new package/ module related to ROS, I don’t want it to cause any conflicts with a package used by OpenCV or Deep Learning Libraries. At the same time ROS should be able to use OpenCV or Deep Learning Libraries as well as the common resources in the Ubuntu platform. I have already read this, but it only deals with ROS, not the interaction between different software packages.

  1. Is such a system possible using Docker?

  2. Can anyone kindly provide some guidance regarding a roadmap towards such an implementation?