如何在docker中运行ubuntukylin桌面系统
背景
由于要和开源社合办一个活动,要求线上线下同时进行,需要使用对方的云平台,本来以为只需要提供iso镜像就行了,没想到对方只支持docker镜像。虽然之前用过docker,但是完全没想过docker里跑桌面。
思路调研和已有开源项目
说实话,由于没怎么接触过docker,所以花了一上午时间看了下docker实践教程,但是对如何运行桌面还是没什么头绪。但是我之前在win10刚出wsl的时候好奇去尝试过,当时有一种使用ximage映射使wsl运行图形界面的方案,我猜测docker也可以通过这种类似远程桌面的方式来跑桌面。
同时我又寻找了一些开源项目,这里不得不吐槽下,大家似乎对在docker里启桌面都没什么兴趣,相关资料是真的少…
首先是kde neno,kde neno有docker镜像的试用,看了下发现采用的是xserver-xwphyr这个方案,但是对于docker镜像的细节并看不到,遂放弃。
然后我想到了deepin,似乎曾经听说过他们有相应的docker镜像,我抱着试试看的心态去找了找,发现确实有一个在docker里运行桌面的方案,然而是使用xdocker,这个显然不符合我的预期,只能放弃。
最后终于在github上找到了这个docker-ubuntu-vnc-desktop 这个项目是在docker里运行lxde桌面的ubuntu,并通过浏览器来访问。效果如下
效果相当不错,赶紧看看人家的dockerfile是如何构建的
# Built with arch: amd64 flavor: lxde image: ubuntu:18.04 localbuild: 1
#
################################################################################
# base system
################################################################################
FROM ubuntu:18.04 as system
RUN sed -i 's#http://archive.ubuntu.com/#http://tw.archive.ubuntu.com/#' /etc/apt/sources.list;
# built-in packages
ENV DEBIAN_FRONTEND noninteractive
RUN apt update \
&& apt install -y --no-install-recommends software-properties-common curl apache2-utils \
&& apt update \
&& apt install -y --no-install-recommends --allow-unauthenticated \
supervisor nginx sudo net-tools zenity xz-utils \
dbus-x11 x11-utils alsa-utils \
mesa-utils libgl1-mesa-dri \
&& apt autoclean -y \
&& apt autoremove -y \
&& rm -rf /var/lib/apt/lists/*
# install debs error if combine together
RUN add-apt-repository -y ppa:fcwu-tw/apps \
&& apt up