https://hub.docker.com/r/chenjr0719/ubuntu-unity-novnc/
https://github.com/chenjr0719/Docker-Ubuntu-Unity-noVNC
https://github.com/chenjr0719/Docker-Ubuntu-MATE-noVNC
https://github.com/TigerVNC/tigervnc/releases
https://github.com/novnc/noVNC/releases
https://github.com/novnc/websockify/releases
https://ngrok.com/download
#run
docker run -d -p 1000:6080 --name novnc --restart always -e PASSWORD=wdq54321 -e NGROK=Yes -e SUDO=Yes -v /data/file:/data/file chenjr0719/ubuntu-unity-novnc:latest
应用: tools-> 添加服务: novnc
镜像: chenjr0719/ubuntu-unity-novnc:latest or 140.cndo.org:5000/os:novnc-20180910
变量:
PASSWORD = w1
NGROK = Yes
SUDO = Yes
卷:
/data/file:/data/file
端口(http):1000-6080
保存ip: 升级或替换 不变
主机名: 使用容器名称
访问形式: http://ip:1000/vnc.html
===============
docker run -itd -p 8091:6080 -e PASSWORD=w1 -e NGROK=Yes -e SUDO=Yes 140.cndo.org:5000/os:novnc-20180910
===============
# 系统说明
sed -i "s|-geometry 1600x900|-geometry 1024x768|g" /etc/supervisor/conf.d/supervisor.conf # Screen size
cat /home/ubuntu/password.txt # 查看密码
SUDO=yes # 拥有sudo权限, man sudo_root
NGROK=Yes # 解决的外网访问内网
docker exec -it novnc /bin/bash
# 修改后可以升级
vi /etc/apt/apt.conf.d/70debconf
Acquire::AllowInsecureRepositories “true”; # 在true前面有个空格,如果没敲就会飘红
apt-get update && apt-get upgrade
# 安装中文:
apt-get install language-pack-zh-hant language-pack-zh-hans -y
vi /etc/environment # 增加
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
dpkg-reconfigure locales # 重新设置本地配置
# linux搜狗输入法安装
https://abc.htmltoo.com/thread-46244.htm
# 安装中文字体:
apt-get install xfonts-wqy
mkdir /usr/share/fonts/opentype
git clone https://github.com/adobe-fonts/source-code-pro.git /usr/share/fonts/opentype/scp
cd /usr/share/fonts/opentype/scp
fc-cache -f -v
rm -rf /usr/share/fonts/opentype/scp/.git*
fc-list # 查看中文字体
fc-list :lang=zh-cn # 查看字体命令,注意冒号之前有个空格
# 安装火狐浏览器
add-apt-repository ppa:mozillateam/firefox-next
apt update
apt install firefox -y
apt-get install firefox-locale-zh-hans -y
# 卸载火狐浏览器
apt remove firefox
add-apt-repository --remove ppa:mozillateam/firefox-next
apt install firefox
# 媒体编解码器
apt install ubuntu-restricted-extras
# 安装谷歌游览器
echo 'deb http://dl.google.com/linux/chrome/deb/ stable main' >> /etc/apt/sources.list
wget https://dl-ssl.google.com/linux/linux_signing_key.pub
apt-key add linux_signing_key.pub
apt-get update
apt-get install google-chrome-stable
# 系统升级
apt-get install -y wget vim net-tools curl git
apt autoremove # Debian系统中删除过时/不需要的软件包。
# 安装kali工具包: https://github.com/LionSec/katoolin
cd /opt
git clone https://github.com/LionSec/katoolin.git && cp katoolin/katoolin.py /usr/bin/katoolin
chmod +x /usr/bin/katoolin
katoolin
apt update && apt upgrade
apt-get upgrade --allow-unauthenticated # 更新实际的软件包文件
apt-get dist-upgrade --allow-unauthenticated # 根据依赖关系更新
apt-get -y install kali-linux-all # 将安装全部的kali工具
apt-get -y install kali-linux-web # 将安装所有和web相关的工具
apt-get update
apt-get dist-upgrade -y
Dockerfile
FROM ubuntu:16.04
MAINTAINER Jacob <chenjr0719@gmail.com>
ENV DEBIAN_FRONTEND noninteractive
ENV USER ubuntu
ENV HOME /home/$USER
# Create new user for vnc login.
RUN adduser $USER --disabled-password
# Install Ubuntu Unity.
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ubuntu-desktop \
unity-lens-applications \
gnome-panel \
metacity \
nautilus \
gedit \
xterm \
sudo
# Install dependency components.
RUN apt-get install -y \
supervisor \
net-tools \
curl \
git \
pwgen \
libtasn1-3-bin \
libglu1-mesa \
&& apt-get autoclean \
&& apt-get autoremove \
&& rm -rf /var/lib/apt/lists/*
# Download tigerVNC binaries
ADD https://dl.bintray.com/tigervnc/stable/tigervnc-1.9.0.x86_64.tar.gz $HOME/tigervnc/tigervnc.tar.gz
RUN tar xmzf $HOME/tigervnc/tigervnc.tar.gz -C $HOME/tigervnc/ && rm $HOME/tigervnc/tigervnc.tar.gz
RUN cp -R $HOME/tigervnc/tigervnc-1.9.0.x86_64/* / && rm -rf $HOME/tigervnc/
# Clone noVNC.
RUN git clone https://github.com/novnc/noVNC.git $HOME/noVNC
RUN cp $HOME/noVNC/vnc.html $HOME/noVNC/index.html
# Clone websockify for noVNC
Run git clone https://github.com/kanaka/websockify $HOME/noVNC/utils/websockify
# Download ngrok.
ADD https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip $HOME/ngrok/ngrok.zip
RUN unzip -o $HOME/ngrok/ngrok.zip -d $HOME/ngrok && rm $HOME/ngrok/ngrok.zip
# Copy supervisor config
COPY supervisor.conf /etc/supervisor/conf.d/
# Set xsession of Unity
COPY xsession $HOME/.xsession
# Copy startup script
COPY startup.sh $HOME
EXPOSE 6080 5901 4040
CMD ["/bin/bash", "/home/ubuntu/startup.sh"]
startup.sh
#!/bin/bash
if [ ! -f $HOME/.vnc/passwd ] ; then
if [ -z "$PASSWORD" ] ; then
PASSWORD=`pwgen -c -n -1 12`
echo -e "PASSWORD = $PASSWORD" > $HOME/password.txt
fi
echo "$USER:$PASSWORD" | chpasswd
# Set up vncserver
su $USER -c "mkdir $HOME/.vnc && echo '$PASSWORD' | vncpasswd -f > $HOME/.vnc/passwd && chmod 600 $HOME/.vnc/passwd && touch $HOME/.Xresources"
chown -R $USER:$USER $HOME
if [ ! -z "$SUDO" ]; then
case "$SUDO" in
[yY]|[yY][eE][sS])
adduser $USER sudo
esac
fi
else
VNC_PID=`find $HOME/.vnc -name '*.pid'`
if [ ! -z "$VNC_PID" ] ; then
vncserver -kill :1
rm -rf /tmp/.X1*
fi
fi
if [ ! -z "$NGROK" ] ; then
case "$NGROK" in
[yY]|[yY][eE][sS])
su ubuntu -c "$HOME/ngrok/ngrok http 6080 --log $HOME/ngrok/ngrok.log --log-format json" &
sleep 5
NGROK_URL=`curl -s http://127.0.0.1:4040/status | grep -P "http://.*?ngrok.io" -oh`
su ubuntu -c "echo -e 'Ngrok URL = $NGROK_URL/vnc.html' > $HOME/ngrok/Ngrok_URL.txt"
esac
fi
/usr/bin/supervisord -n
supervisor.conf
[program:vncserver]
command=vncserver -geometry 1600x900 :1
user=ubuntu
[program:noVNC]
command=/home/ubuntu/noVNC/utils/launch.sh --vnc localhost:5901
user=ubuntu
stdout_logfile=/var/log/novnc.log
redirect_stderr=true
xsession
/usr/lib/gnome-session/gnome-session-binary --session=ubuntu &
/usr/lib/x86_64-linux-gnu/unity/unity-panel-service &
/usr/lib/unity-settings-daemon/unity-settings-daemon &
for indicator in /usr/lib/x86_64-linux-gnu/indicator-*; do
basename=`basename ${indicator}`
dirname=`dirname ${indicator}`
service=${dirname}/${basename}/${basename}-service
${service} &
done
unity
cd /data/docker/tools/Dockerfile/novnc
docker build -t novnc .
docker tag novnc:latest hub.htmltoo.com:5000/os:novnc-20200301
docker push hub.htmltoo.com:5000/os:novnc-20200301