docker创建Ubuntu,Ubuntu创建桌面环境,本机使用VNC连接
为什么我想要用ubuntu的桌面环境?因为我有一些软件开发需要显示GUI,就这么简单。
·
题目:docker创建Ubuntu,Ubuntu创建桌面环境,本机使用VNC连接
前言
为什么我想要用ubuntu的桌面环境?因为我有一些软件开发需要显示GUI,就这么简单。
docker创建基于Ubuntu:20.04的容器
参考:给docker中的ubuntu系统安装桌面程序:我们可以创建好容器。
🎈打开powershell或者linux终端,输入以下命令创建容器
🔻warning:千万不要用主机的10000端口,改为3316,掉坑了
docker run -tid -p 3316:22 -p 5900:5900 -p 5901:5901 --name displaytest_container --privileged=true ubuntu:20.04 /bin/bash
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yqEsPpWr-1686979724704)(images/img.png)]](https://i-blog.csdnimg.cn/blog_migrate/0bb7fa1ac73e121d1dfe2fd49e1ecec3.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7kLSqNV-1686979724706)(images/img_1.png)]](https://i-blog.csdnimg.cn/blog_migrate/6fd419ae2ac8b742a086da680856ce18.png)
🎈从docker for windows软件中,可看到容器正在运行![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EhufJdLX-1686979724706)(images/img_2.png)]](https://i-blog.csdnimg.cn/blog_migrate/c08da0617791956aa14c497ef30bfff0.png)
使用ssh连接容器
🎈在终端输入以下命令,进入容器控制台
docker exec -it displaytest_container /bin/bash
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pG6GIM56-1686979724706)(images/img_3.png)]](https://i-blog.csdnimg.cn/blog_migrate/25d89763eb79efde1b884268f1046b03.png)
🎈安装配置ssh的必要工具
apt update
apt install vim
apt install openssh-client
apt install openssh-server
apt install net-tools
🎈编辑sshd_config文件
vim /etc/ssh/sshd_config
🎈添加PermitRootLogin yes
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQMt6bDt-1686979724707)(images/img_7.png)]](https://i-blog.csdnimg.cn/blog_migrate/6c66cd2a7fe811e071c30cf4c5df02b9.png)
🎈给root设置密码
passwd root
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SHhZxAGp-1686979724707)(images/img_5.png)]](https://i-blog.csdnimg.cn/blog_migrate/f16a9a9907d944e7ed9934655d8ceca1.png)
🎈启动ssh
service ssh start
ps -e|grep ssh
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f5nidkVm-1686979724707)(images/img_6.png)]](https://i-blog.csdnimg.cn/blog_migrate/3f5ae7cdd4bbc81a20f3e4241b89d942.png)
🎈设置容器启动就开启ssh
vim /root/.bashrc
# 在.bashrc末尾添加如下代码
service ssh start
🎈用自己喜欢的ssh工具连接,这里我用electerm
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5F82CUmf-1686979724708)(images/img_8.png)]](https://i-blog.csdnimg.cn/blog_migrate/cc90e8dadc677e644c49f4b58c2362f1.png)
容器安装桌面环境
🎈在electerm终端输入以下命令,安装ubuntu桌面
apt-get update
apt install -y gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop
🎈添加vnc4server的安装源
vim /etc/apt/sources.list
添加
deb http://archive.ubuntu.com/ubuntu/ bionic universe
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EmzrUF9w-1686979724708)(images/img_9.png)]](https://i-blog.csdnimg.cn/blog_migrate/e1f1e2b0f16ed925ec78c4fa6bccb718.png)
更新源
apt update
🎈安装vncserver
apt install vnc4server
🎈先启动以下vncserver生成一些文件
vncserver
初次启动需要设置密码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qv01aBXe-1686979724708)(images/img_10.png)]](https://i-blog.csdnimg.cn/blog_migrate/29e8476ad42f6d387b9433f0cf573383.png)
🎈备份启动设置
cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
🎈编辑vnc启动设置
vim ~/.vnc/xstartup
替换为以下内容
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
🎈重新启动vnc
vncserver -kill :1
vncserver -geometry 1920x1080 :1
🎈如果是重新启动容器后再启动vnc
第一次需要进行以下设置
vim /root/.bashrc
# 在.bashrc末尾添加如下代码
rm -rf /tmp/.X1-lock
rm -rf /tmp/.X11-unix/X1
每次启动容器后,都需要执行以下命令来启动桌面(不可以用自动运行,否则终端无法运行)
vncserver -geometry 1920x1080 :1
本机电脑使用VNC连接
🎈连接,可见已经连上了
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ptNe35TA-1686979724709)(images/1.gif)]](https://i-blog.csdnimg.cn/blog_migrate/726980686eef23657de6a266810d6323.gif)
测试用python来创建的ui能否显示
🎈启动终端
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ClRn7R2-1686979724709)(images/gif_2.gif)]](https://i-blog.csdnimg.cn/blog_migrate/81aa67fb0fd1c30b5df4c7ed3b928504.gif)
🎈安装python3-pip
apt install python3-pip
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LXhHcT12-1686979724709)(images/gif_3.gif)]](https://i-blog.csdnimg.cn/blog_migrate/882faa313143e23a62ceefc2410cc615.gif)
🎈安装matplotlib
pip3 install matplotlib
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UnTItDSL-1686979724710)(images/gif_4.gif)]](https://i-blog.csdnimg.cn/blog_migrate/5bc133f56eaac8266083d1d01e09a8e2.gif)
🎈启动python3,输入以下代码
import matplotlib.pyplot as plt
import numpy as np
mat = np.arange(0, 100).reshape(10, 10)
plt.matshow(mat)
plt.show()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ng21RREI-1686979724710)(images/gif_5.gif)]](https://i-blog.csdnimg.cn/blog_migrate/a21005562372823341e097f7678bfe01.gif)
坑
- 主机的端口被占用,导致映射出的端口无法进行ssh连接,windows用以下方法检测是否被占用:端口占用问题,10000端口
参考
更多推荐



所有评论(0)