Docker
Docker is a software containership platform that provides virtualization from the os. In Docker, all software parts are organised as containers which includes the operating system, software, dependencies, environment variables, etc. Containers can be shared among different users, enabling quick installation and running of software and services which makes Docker user-friendly for automation testing, as the relevant container can just be downloaded and run as part of the automated test. Docker is also secure because it runs as an isolated process on the host machine.
It is to be noted that, Docker is isolated, secure and portable. However, there is no GUI and it does not run in bare metal speed.
The prerequisites
- Python, binded with Selenium WebDriver
- A testing framework e.g. PyTest, Nose or JUnit.
- ChromeDriver, GeckoDriver
- Docker (from the installation location)
- CI tool, e.g. Jenkins or TeamCity.
- Optional plugins, e.g. GitHub for the repository connection, Allure for reporting or BlazeMeter for performance testing, etc.
Answering your questions:
Do I need to use a remote display viewer such as VNC?: As per the article GUIdock-VNC: using a graphical desktop sharing system to provide a browser-based interface for containerized software Docker can run natively on Linux hosts, while a small Linux VM is necessary to provide the virtualization services on Mac OS and Windows systems. On non-Linux systems, a single Docker container consists of a mini-VM, the Docker software layer, and the software container. But recently, support for OS-level virtualization has been added to Windows and Mac OS. Beta versions of Docker for both Windows and Mac OS are now available that allow Docker to run natively.
Is it possible to use a browser on the host?: No, because there is no UI. But then to have a visual view of your test execution you can install X Server Display
.
With that you can see the results:

To view the results in a visual manner you can use the Allure report which looks like:

- Any other option?: There a couple of other options available as well.
Outro
How To Run Selenium WebDriver With Docker?