1. Window10
1.1 docker安装
https://www.runoob.com/docker/windows-docker-install.html
1.2 centos7-vnc安装
docker pull centos:7
可以从https://hub.docker.com/_/centos?tab=tags查询拉取需要的镜像版本。
docker run --gpus all --name nvidia-centos-desktop-vnc -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all --privileged -d -p 5901:5901 --ulimit memlock=-1 -td nvidia/cuda:12.0.0-cudnn8-runtime-centos7 /usr/sbin/init
指定容器的名称为centos-desktop-vnc,并暴露宿主机的5901来连接vnc。
docker exec -it centos-desktop-vnc bash
默认的镜像不带desktop环境,需要手动安装。
1) 查看支持环境
yum grouplist
查看可安装且支持的桌面环境。
2) 安装gnome环境
yum groupinstall GNOME Desktop -y
安装gnome桌面。
3) 配置系统默认的启动模式
*
# 获取当前启动模式
systemctl get-default
# 修改启动模式为图形化
systemctl set-default graphical.target
# 修改启动模式为命令行
systemctl set-default multi-user.target
1.3 配置vnc
yum -y install tigervnc-server tigervnc-server-module vim net-tools
cp /lib/systemd/system/[email protected] /lib/systemd/system/vncserver@:1.service
2)设置生效用户
修改配置文件
vim /lib/systemd/system/vncserver\@\:1.service
将配置文件的修改为root,由于root的home路径是/root,不是/home/root,因此注意修改PIDFILE的路径
改好之后如下
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
4) 修改vnc server密码
vncpasswd
5) 生效vnc配置
systemctl daemon-reload
6) 配置vnc开机启动
# 启动服务
systemctl start vncserver@:1
# 设为开机启动
systemctl enable vncserver@:1
7) 检查vnc server是否启动
netstat -lnpt|grep Xvnc
8) 关闭防火墙
# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机启动
systemctl disable firewalld
9) 查看ip
Ifconfig
查看ip。
1.4 Window安装Vnc客户端
下载vnc server,安装vnc server(https://www.realvnc.com/en/connect/download/viewer/)。
调节分辨率
Vnc链接完docker容器后,不能全屏显示,需要调整分辨率,分辨率值根据自己的电脑分辨率进行设置。
1) 关闭vncserver:vncserver -kill :1
设置分辨率并重启:vncserver -geometry 1366x768 :1
第一种方法只是临时的改变,每次关机开机都需要重新配置。
2)~/.vnc/config
# desktop=sandbox
geometry=1920x1080 #分辨率
# localhost #仅监听本地端口
# alwaysshared
#dpi=96
这个方法永久的改变了vnc链接的分辨率。
注意:安装好后,不要restart,直接关机再开机。
1.5 安装软件
yum install epel-release
yum -y groupinstall Fonts
date –R
timedatectl set-timezone Asia/Shanghai
yum install octave
gnuplot
Vim /usr/share/octave/3.8.2/m/startup/octaverc
添加graphics_toolkit(‘gnuplot’)
5. 安装python3
CentOS 7.4 安装python3及虚拟环境 - 简书 (jianshu.com)
6. 安装git
Linux(Centos 7)下安装Git并配置连接GitHub - smartwen - 博客园 (cnblogs.com)
1.6 centos7push/pull
Docker 将容器制作成镜像并上传 - 掘金 (juejin.cn)
# 1、查询container id,出现的第一个字符串就是container id,我这里是4052d86631b0
docker ps -a | grep centos-desktop-vnc
# 2、提交作为本地镜像
docker commit 4052d86631b0 centos:7-vnc
#3、tag
docker tag vs:v1 cccc/vserver:v1
#4. Push
docker push cccc/vserver:v1
2. MacOS
1中配置的centos系统被pull到Mac上。由于MAC不能链接D-BUS,通过安装也没有得到很好的解决。
目前通过xquartz解决centos界面应用的问题,如gnuplot画图,firfox显示,python3画图等问题。
brew install xquartz
open –a XQuartz
ip=$(ifconfig en0 | grep inet | awk ‘$1==“inet” {print $2}’)
xhost + $ip
docker run -d --name firefox -e DISPLAY=$ip:0 -v /tmp/.X11-unix:/tmp/.X11-unix jess/firefox