拉取镜像
docker pull ubuntu:18.04
启动基础镜像
docker run --privileged --cap-add SYS_ADMIN -e container=docker -it --name my_ubuntu -p 81:80 -d --restart=always ubuntu:18.04
进入容器
docker ps
docker exec -it my_ubuntu /bin/bash
同步时间
apt-get update
apt-get install -y tzdata
安装vim netstat -tnlp
apt-get install vim net-tools -y
安装xfce4桌面
apt-get update
apt-get install xfce4 xfce4-goodies -y
容器外(宿主机)commit容器
docker commit my_ubuntu my_ubuntu:v1
用新镜像v1创建容器
docker run --privileged=true -it --name my_ubuntu-v1 -p 10001:6080 -p 10002:8000 -p 10003:1337 -d --restart=always my_ubuntu:v1 /sbin/init
进入容器
docker exec -it my_ubuntu-v1 /bin/bash
测试systemctl功能
systemctl
echo "PS1='\[\033[35m\][\[\033[00m\]\[\033[31m\]\u\[\033[33m\]\[\033[33m\]@\[\033[03m\]\[\033[35m\]\h\[\033[00m\] \[\033[5;32m\]\w\[\033[00m\]\[\033[35m\]]\[\033[00m\]\[\033[5;31m\]\\$\[\033[00m\] '" >> ~/.bashrc
source ~/.bashrc
关闭容器内防火墙
apt-get install ufw -y
ufw disable
ufw status
安装VNC Server
apt-get install tigervnc-standalone-server tigervnc-xorg-extension -y
设置vnc密码
vncpasswd
ls ~/.vnc
为VNC设置桌面环境
打开xstartup文件,没有就新建一个
cat > ~/.vnc/xstartup << EOF
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
EOF
chmod 777 ~/.vnc/xstartup
(查看)
ll ~/.vnc
启动VNC
vncserver -geometry 1920x1080 :1 -localhost no
netstat -ntupl|grep vnc
记得不用VNC了之后把VNC Service关掉
vncserver -kill :2
安装noVNC
下载noVNC
apt-get install wget git inetutils-ping -y
cd /usr/local/
git clone https://github.com/novnc/noVNC.git
或者
cd /usr/local/
wget https://github.com/novnc/noVNC/archive/refs/heads/master.zip
unzip master.zip
mv noVNC-master noVNC
修改vnc.html为index.html
cd noVNC && mv vnc.html index.html
vim utils/novnc_proxy
:%s/vnc.html/index.html/g
制作100年证书
cd utils/
openssl req -new -x509 -days 36500 -nodes -out self.pem -keyout self.pem
chmod 777 self.pem
启动noVNC
cd /usr/local/noVNC/
./utils/novnc_proxy --vnc localhost:5901 &
装cloudcmd
安装nodejs
cd /usr/local/
wget https://nodejs.org/dist/v14.17.6/node-v14.17.6-linux-x64.tar.xz
tar xf node-v14.17.6-linux-x64.tar.xz
mv node-v14.17.6-linux-x64 node
链接到/usr/bin
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm
测试
node -v
npm -v
更换淘宝镜像源
npm config set registry https://registry.npmmirror.com
安装cloudcmd
npm i cloudcmd@16.0.0 -g
启动
ln -s /usr/local/node/lib/node_modules/cloudcmd/bin/cloudcmd.mjs /usr/bin/cloudcmd
cloudcmd --one-file-panel & (显示一个面板)
cloudcmd --one-file-panel &
ps -ef | grep cloudcmd
jobs -l
安装终端gritty
apt-get install gcc -y
apt-get install g++ -y
apt-get install make -y
gcc --version
g++ --version
make -h
npm i npm@8.5.3 -g
npm i gritty -g
ln -s /usr/local/node/lib/node_modules/gritty/bin/gritty.js /usr/bin/gritty
启动命令
/usr/bin/gritty &
ps -ef | grep gritty
jobs -l
设置HOME环境变量
编辑~/.bashrc
添加
cat >> ~/.bashrc << EOF
export HOME=/root
cd \$HOME
EOF
source ~/.bashrc
添加开机自启
1.配置vncserver、cloudcmd、gritty开机自启
安装cron
apt-get install cron
编辑
crontab -e
添加如下行:
@reboot /usr/bin/vncserver -geometry 1920x1080 :1 -localhost no
@reboot cloudcmd --one-file-panel &
@reboot gritty &
crontab -l
2.配置noVNC开机自启
netstat -tnlp
先干掉noVNC服务:
pkill python3
cat > /lib/systemd/system/novnc.service << EOF
[Unit]
Description=Start novnc
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/local/noVNC/utils/novnc_proxy --vnc localhost:5901
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start novnc
systemctl enable novnc
systemctl status novnc
设置容器里面的root密码
passwd
容器外(宿主机)操作
退出容器,保存此环境
docker commit my_ubuntu-v1 ubuntu-xfce:v1
docker ps -a
docker images
用做好的ubuntu-18.04桌面版镜像创建容器
docker run --privileged=true -it --name my_ubuntu-xfce -p 10001:6080 -p 10002:8000 -d -p 10003:1337 --restart=always ubuntu-xfce:v1 /sbin/init