Skip to content

Remote Desktop with Docker: XRDP/NOVNC/PulseAudio. (Xfce, Mate, Cinnamon, Gnome, Plasma) MultiScreen Support!

License

Notifications You must be signed in to change notification settings

infrastlabs/docker-headless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
sam#gemmi-win10
Nov 3, 2024
2729da9 · Nov 3, 2024
Nov 3, 2024
Oct 20, 2024
Nov 3, 2024
Oct 20, 2024
Oct 20, 2024
Oct 20, 2024
Nov 4, 2022
Oct 20, 2024
Oct 31, 2024
Oct 31, 2024
Feb 26, 2022
Oct 20, 2024
Oct 20, 2024
Oct 31, 2024
Oct 20, 2024
Oct 20, 2024

Repository files navigation

docker-headless

Multi-Desktop with XRDP/NOVNC/PulseAudio based on Ubuntu20.04, Formatting a HeadlessBox/Cloud Desktop. [Detail]

Docker Image Size Docker Pulls Last commit GitHub issues

step1: QuickStart

docker run -it --rm --shm-size 1g --net=host infrastlabs/docker-headless:latest

-- Conn PASS ReadOnly
noVnc https://192.168.0.x:10081 headless View123
RDP 192.168.0.x:10089 headless -
SSH ssh -p 10022 headless@192.168.0.x headless -

step2: Design

  • Screen shared with both RDP/noVnc. (ReadWrite/ReadOnly)
  • Multi Desktop: Xfce, Mate, Cinnamon, Gnome, Plasma
  • Slim Image: core: 170.53 MB, latest: 277.48 MB, sogou: 354.15 MB
  • Feats
    • MultiScreen support. (mstsc+xrdp+tigervnc)
    • Audio support. (xrdp+pulseaudio/noVNC+broadcast)
    • Locale/TZ support. Apps ibus-rime/fcitx-sogou, flameshot, PAC.

step3: UseCase

Quick start with Locale: docker run -it --rm --shm-size 1g -e VNC_OFFSET=20 -e L=zh_CN --net=host infrastlabs/docker-headless:latest, Prefer docker-compose.yml

(1)Development (java, golang, nodejs)

# JAVA
sudo apt -y install openjdk-8-jdk openjdk-8-source && sudo apt -y install maven 
# GO
goVer=go1.17.8 #go1.16.15 #go1.13.15
wget https://studygolang.com/dl/golang/$goVer.linux-amd64.tar.gz
tar -zxf $goVer.linux-amd64.tar.gz; mv go $goVer.linux-amd64
rm -f godev; ln -s $goVer.linux-amd64 godev #link godev
# NODE
wget https://npm.taobao.org/mirrors/node/v14.20.0/node-v14.20.0-linux-x64.tar.xz
xz -d node-v14.20.0-linux-x64.tar.xz #tar.xz消失
tar -xvf node-v14.20.0-linux-x64.tar

# cat >> /etc/profile <<EOF
cat <<EOF |sudo tee -a /etc/profile
# NODE
NODE_HOME=/_ext/down/node-v14.20.0-linux-x64
PATH=\$NODE_HOME/bin:\$PATH
export NODE_HOME PATH
# GO
GO_HOME=/_ext/down/godev
GOPATH=/_ext/gopath
PATH=\$GO_HOME/bin:\$GOPATH/bin:\$PATH
export GO_HOME GOPATH PATH
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
EOF

#IDE: vscode, ideaIC
wget https://vscode.cdn.azure.cn/stable/6cba118ac49a1b88332f312a8f67186f7f3c1643/code_1.61.2-1634656828_amd64.deb
wget https://download.jetbrains.com.cn/idea/ideaIC-2016.3.8-no-jdk.tar.gz

(2)Office

wps, chrome/firefox

# firefox, chromium
sudo apt -y install firefox-esr chromium #chromium-driver
# WPS Office
# https://blog.csdn.net/u012939880/article/details/89439647 #wps_symbol_fonts.zip
wget https://wdl1.cache.wps.cn/wps/download/ep/Linux2019/10161/wps-office_11.1.0.10161_amd64.deb
# ibus support with wps
sudo sed -i "1a export XMODIFIERS=@im=ibus" /usr/bin/{wps,wpp,et}
sudo sed -i "2a export QT_IM_MODULE=ibus" /usr/bin/{wps,wpp,et}

(3)Docker Dind

# exec@host: docker,dcp
img=docker:18.09.8 #18.09.3
docker run -v /_ext:/mnt $img sh -c "cp /usr/local/bin/docker /mnt; ls -lh /mnt |grep docker"
img=registry.cn-shenzhen.aliyuncs.com/k-bin/sync-kube:kube-att
docker run --rm -v /_ext:/mnt $img sh -c 'cp -a /down/docker-compose /mnt/; ls -lh /mnt |grep docker'

# links@HeadlessBox: docker, socket
sudo bash -c "ln -s /_ext/docker /bin/; ln -s /_ext/docker-compose /usr/bin/dcp"
sudo bash -c "ln -s /mnt/var/run/docker.sock /var/run/; chmod 777 /var/run/docker.sock"