Skip to content

Latest commit

 

History

History
185 lines (159 loc) · 4.97 KB

README.md

File metadata and controls

185 lines (159 loc) · 4.97 KB

Docker OS

Introduction

The purpose of these images is to provide a full featured web native Linux desktop experience for any Linux application or desktop environment.

These images contain the following services:

  • KasmVNC - The core technology for interacting with a containerized desktop from a web browser.
  • Kclient - NodeJS Iframe wrapper for KasmVNC providing audio and file access.
  • PulseAudio - Sound subsystem used to capture audio from the active desktop session and send it to the browser via the Kclient helper application.
  • Nginx - Used to serve the mix of KasmVNC and Kclient with the appropriate headers and provide basic auth.
  • XFCE - Lightweight desktop environment that provides a full featured desktop experience.
  • OpenSSH - Used to provide secure shell access to the container.
  • Docker - Can support running docker in docker(DinD) if the container is run in privileged mode.
  • Nvidia CUDA - Can support running Nvidia CUDA applications if the Nvidia runtime is installed on the host.
  • Vscode - Code editor with support for many languages and extensions.
  • Jetbrains Toolbox - Used to install and manage Jetbrains IDEs like IntelliJ IDEA, PyCharm, WebStorm, etc.
  • MS Edge - Microsoft Edge browser(base Google Chrome) for web browsing.
  • VLC - Media player that can be used to play audio and video files.

Scenarios

Just open a browser and visit http://localhost:7900 (the address and port may be different depending on your settings).

1. Have a Visual Desktop Environment in Docker Container

XFCE Desktop

2. Programming with Vscode in Docker Container

Vscode

3. Programming with Jetbrains IntelliJ Idea in Docker Container

Vscode

4. Browsing with MS Edge in Docker Container

MS Edge

5. Playing Media with VLC in Docker Container

VLC

6. SSH Access and Test CUDA in Docker Container

SSH

7. Upload or Download Files via Browser in Docker Container

VLC

Run Container From Docker Hub Images

1. CPU Version with Desktop

sudo docker run -itd \
--privileged \
--hostname linux \
--shm-size 8g \
-e VNC_PORT=7900 \
-e VNC_USER=admin \
-e VNC_PASSWD=123456 \
-p 7900:7900 \
--name webos \
moonpath/webos:latest

2. GPU Version with Desktop

sudo docker run -itd \
--runtime nvidia \
--gpus all \
--privileged \
--hostname linux \
--shm-size 8g \
-e VNC_PORT=7900 \
-e VNC_USER=admin \
-e VNC_PASSWD=123456 \
-p 7900:7900 \
--name webos-gpu \
moonpath/webos-gpu:latest

3. CPU Version without Desktop

sudo docker run -itd \
--privileged \
--hostname linux \
-p 2222:22 \
--name devos \
moonpath/devos:latest

4. GPU Version without Desktop

sudo docker run -itd \
--runtime nvidia \
--gpus all \
--privileged \
--hostname linux \
-p 2222:22 \
--name devos-gpu \
moonpath/devos-gpu:latest

Build Docker Image and Run Container

1. CPU Version with Desktop

# Clone repository
git clone https://github.com/moonpath/dockeros.git
cd dockeros

# Build Docker Image
sudo docker build -t webos:latest -f dockerfile-webos .

# Run Docker Container
sudo docker run -itd \
--runtime nvidia \
--gpus all \
--privileged \
--hostname linux \
--shm-size 8g \
-e VNC_PORT=7900 \
-e VNC_USER=admin \
-e VNC_PASSWD=123456 \
-p 7900:7900 \
--name webos \
webos:latest

2. GPU Version with Desktop

# Clone repository
git clone https://github.com/moonpath/dockeros.git
cd dockeros

# Build Docker Image
sudo docker build -t webos-gpu:latest -f dockerfile-webos-gpu .

# Run Docker Container
sudo docker run -itd \
--runtime nvidia \
--gpus all \
--privileged \
--hostname linux \
--shm-size 8g \
-e VNC_PORT=7900 \
-e VNC_USER=admin \
-e VNC_PASSWD=123456 \
-p 7900:7900 \
--name webos-gpu \
webos-gpu:latest

3. CPU Version without Desktop

# Clone repository
git clone https://github.com/moonpath/dockeros.git
cd dockeros

# Build Docker Image
sudo docker build -t devos:latest -f dockerfile-devos .

# Run Docker Container
sudo docker run -itd \
--runtime nvidia \
--gpus all \
--privileged \
--hostname linux \
-p 2222:22 \
--name devos \
devos:latest

4. GPU Version without Desktop

# Clone repository
git clone https://github.com/moonpath/dockeros.git
cd dockeros

# Build Docker Image
sudo docker build -t devos-gpu:latest -f dockerfile-devos-gpu .

# Run Docker Container
sudo docker run -itd \
--runtime nvidia \
--gpus all \
--privileged \
--hostname linux \
-p 2222:22 \
--name devos-gpu \
devos-gpu:latest