Running the Cloudera Quickstart Docker Image with WSL 2 and Powershell

In my exploration of tools for data engineering and analytics I stumbled on the Cloudera Quickstart Docker Image. It appears to be a one stop shop for getting a full data environment running on your laptop - single node. It's not suitable for processing serious data but you can use it for learning or demoing. Only problem is it is a little older and no longer supported. What a shame.

The issue was the image wouldn't run in docker for windows. Every attempt it would exit with code 139. Now I'm not partial to windows (or any OS ... maybe OpenBSD) but the laptop was issued to me with windows so I use it. A workaround would be to run a linux machine in a vm - but that just doesn't feel right to me. Run virtualization in order to run another layer of virtualization. You understand I'm sure.

After some research I learned it is a problem with compatibility between the base image OS (cloudera quickstart docker image) and WSL 2. I believe the solution below enables a mode to emulate hyper-v. For my own sanity I'm documenting the solution here in case I ever pass down this road again.

1. Create file at #

C:\Users\gmccallum\.wslconfig

2. Add these 2 lines: #

[wsl2]
kernelCommandLine = vsyscall=emulate

3. Restart WSL using command: #

wsl --shutdown

4. Restart Docker Desktop #

5. Run the docker command to start cloudera quickstart #

docker run --hostname=quickstart.cloudera --privileged=true -t -i -v /Users/gmccallum/cloudera-files:/cloudera-files --publish-all=true -p 8888:8888 -p 80:80 cloudera/quickstart /usr/bin/docker-quickstart

Note. This has to be run in powershell. Didn't work for me from git bash.