ubuntu使用VNC运行基于docker的桌面系统
我自己创建的docker image docker pull floodshao/ros-melodic-desktop-vnc:v1.0
基于lxde的一个ubuntu桌面系统
- docker下载地址:
docker pull dorowu/ubuntu-desktop-lxde-vnc
- docker运行
docker run -it --rm -p 8080:80 dorowu/ubuntu-desktop-lxde-vnc
其中 [镜像名/tag] - 运行成功后,在浏览器中实现vnc,打开http://localhost:8080, 浏览器中会出现ubuntu桌面版,但不是传统的运行在pc上的ubuntu18.04。(在浏览器中使用桌面版,快捷键基本不能使用)
- 在该运行容器上使用命令行工具
docker exec -it [container_id] /bin/bash
命令选项:
-i 交互式操作
-t 终端
VNC服务器
VNC(Virtual Network Concols)是虚拟网络控制台的缩写。是在基于UNIX和LINNUX操作系统的免费开源软件。
https://www.jianshu.com/p/f58fe5cdeb5f
ubuntu 18.04 自带桌面共享,可以将物理桌面共享给vnc,但是无法创建新的桌面。上边链接的博主证实原生的gnome桌面基本带不动vnc,所以使用其他桌面。
所以上述docker file中使用了lxde桌面,lightweight x11 desktop environment。该桌面可以再linux,bsd等posix兼容平台运行。lxde重视实用性和轻巧性,并尽量降低所消耗的系统资源。
在Dockerfile目录下创建。docker build -t [image_name:tag_name] .
这里.
代表当前目录
基于xfce的ubuntu桌面系统(推荐)
https://www.jianshu.com/p/38a60776b28a
找到了一个比较稳定且轻量的ubuntu-xfce镜像文件。
https://hub.docker.com/r/consol/ubuntu-xfce-vnc/
这个镜像文件是基于ubuntu16.04的,将其改变成18.04:
- 修改dockerfile中的FROM语句到ubuntu18.04
- 从其github repo https://www.github.com/ConSol/docker-headless-vnc-container 中下载相关命令源码。
- 将
/src
folder拷贝到Dockerfile同级目录下(Dockerfile所在的目录为docker build的根目录,在ADD命令中,不能使用根目录上层的路径) - 进行编译
docker build -t local/ubuntu_1804 .
- 运行docker,注意以下命令并不是进入root用户权限。(用户为default)
docker run -d -p 5901:5901 -p 6901:6901 local/ubuntu_1804
修改default user和groupdocker run -d -p 5901:5901 -p 6901:6901 --user $(id -u):$(id -g) consol/centos-xfce-vnc
或docker run -it -p 5901:5901 -p 6901:6901 local/ubuntu_1804 bash
- 在vnc客户端链接localhost:5901 密码是
vncpassword
.