[lxc-users] LXD Based Container For Desktop Applications - Some Success - Help

rob e redgerhoo at yahoo.com.au
Thu Jul 21 21:33:15 UTC 2016


thanks Brian,
yes, I have about 4 of those running - unprivileged :) And I've had a go 
with TigerVNC (which supports 3d capabilities currently lacking in X2Go).
I can run current versions of KDE and Unity on Xephyr, which I currently 
cannot with X2Go

But for this use case, I want desktop integration from an unprivileged 
container. I have achieved it with LXC on Ubuntu 16.04... but was hoping 
to be able to use LXD. It feels like I'm so close ... just missing 
something, probably quite trivial once you know how ... I wish i knew how

Currently I have the following containers
- Mythtv Backend (unprivileged, but with special user mappings which 
mean it can write to host devices when they're mounted in)
- Proxy with Openvpn and Dante
- Development - X2Go with Mate
- Browsing, semi secure, X2Go with Mate
- Desktop integrated browsing - Unsecure with Mate, on either Xephyr or 
Host desktop BUT running as lxc-start ie. legacy formate
- Various other experimental containers, including one with KDE, X2Go, 
Xephyr and TigerVNC

Somewhat surprisingly current KDE is quite useful with X2Go as long as 
you autostart some applications, particularly dolphin and konsole ... 
then others can be started. You just won't have the panels etc. I 
haven't spent too much time with it because it's not close enough to 
what I want to achieve.

thanks again
   Rob

On 22/07/16 05:53, brian mullan wrote:
> Rob
>
> If you want to run single apps from the container like with microsofts 
> remoteapp then a really simple way to accomplish it is with x2go & the 
> x2go published applications 
> <http://wiki.x2go.org/doku.php/wiki:advanced:published-applications> 
> capabilty.
>
> I just configured a new LXD container.   Its simple to setup/configure 
> and sound, printing, shared folders all work
>
> *Step #1*
>
> Create a privileged container & configure it to autostart:
>
> # Launch an Ubuntu xenial 16.04 64 bit containers and name it cn1.  We 
> are launching CN1 as a
> # PRIVILEGED container:
>
> lxc launch images:ubuntu/xenial/amd64 cn1 -c security.privileged=true
>
> # set LXC container CN1 to autostart when the Host is rebooted
>
> lxc config set cn1 boot.autostart 1
>
> *Step #2*
>
> $ lxc exec cn1 bash
>
> # you will be logged into the CN1 container as root so just execute 
> the following to install
> # Ubuntu-Mate Desktop
>
> Note: you can put all of the following in a bash script..
>
> # Install a desktop in it (I use Ubuntu-Mate:
>
> echo "deb http://archive.canonical.com/ubuntu xenial partner" | tee -a 
> /etc/apt/sources.list
> echo "deb-src http://archive.canonical.com/ubuntu xenial partner" | 
> tee -a /etc/apt/sources.list
> echo "deb http://us.archive.ubuntu.com/ubuntu/ xenial-backports main 
> restricted universe multiverse" | tee -a /etc/apt/sources.list
> echo "deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-backports 
> main restricted universe multiverse" | tee -a /etc/apt/sources.list
>
> # update & upgrade container
> apt-get update
> apt-get upgrade -y
>
> # install apt
> apt-get install apt -y
>
> # From here on we can use apt to update Everything
> apt dist-upgrade -y
>
> #Install miscellaneous
>
> apt install pulseaudio pulseaudio-utils alsa-base alsa-utils 
> linux-sound-base gstreamer1.0-pulseaudio gstreamer1.0-alsa libpulse-dev -y
>
> # Install UBUNTU-MATE desktop environment as default for all users 
> including ones added in the # future
>
> add-apt-repository ppa:ubuntu-mate-dev/xenial-mate -y
> add-apt-repository ppa:x2go/stable
>
> apt update
>
> apt install lightdm ubuntu-mate-core ubuntu-mate-desktop ufw 
> ubuntu-restricted-extras ubuntu-restricted-addons -y
>
> echo "Desktop Install Done"
>
> # Configure the Xsession file default desktop environment change ALL 
> future User additions to default xsession to be UBUNTU-MATE
>
> update-alternatives --set x-session-manager /usr/bin/mate-session
>
> # and some gui based useful tools that aren't included in the 
> minimal-xubuntu-desktop
>
> apt install gdebi synaptic gedit wget git terminator network-manager -y
>
> apt install x2goserver x2goserver-xsession
>
> adduser yourID and password in the container and any others you want 
> to add as users.
>
> # reboot
>
> *Step #3*
>
> On the host all you have to do is install the x2go client
>
> add-apt-repository ppa:x2go/stable
>
> apt update
>
> apt install x2goclient
>
> *Step #4*
>
> launch the x2goclient & follow the directions on the x2go published 
> applications page (use the IP of your container)
>
> In the x2goclient when you create the Published Application "profile" 
> click on the connection tab and slide it all the way to the right so 
> x2go doesn't waste cpu doing any compression.
>
> Save that new Published Application Profile and it will move to the 
> right side of the x2goclient menu.
>
> Click on it & answer yes to the ssh question on adding the new server.
>
> Look on your top menu bar and you will notice 2 new icons shown,  
> Click on the one that has the little Seal icon on it (thats HOCA they 
> mascot for x2go) and you will see
> a pull down menu item called Published Applicaitons.
>
> Click on any one of those and they will startup in the container but 
> be displayed on your Host Desktop,
>
> x2go has clients for Linux, Mac and Windows as well as a python 
> client.   All are open source.
>
> Brian
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20160722/70c4d2c6/attachment.html>


More information about the lxc-users mailing list