Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Running Linux desktop apps in containers 101 @ Digital Ocean Meetup Amsterdam March 22 2017

Running Linux desktop apps in containers 101 @ Digital Ocean Meetup Amsterdam March 22 2017

A Just for fun talk

While many developers use Linux containers to run web applications nowadays only a few have tried to run desktop applications in a container. Lucas, inspired by the work of giants like Jessie Frazelle, gave it a try and will share his experiences. This introductory talk will highlight some of the advantages and disadvantages of containerizing, running and 'installing' desktop applications.

https://www.meetup.com/DigitalOceanAmsterdam/events/236671535/

Lucas van Lierop

March 22, 2017
Tweet

More Decks by Lucas van Lierop

Other Decks in Technology

Transcript

  1. Who am I? • Freelance developer • Co-organizer of DomCode

    • I refactor things • Find me on Twitter: @lucasvanlierop
  2. No really, why this talk? • It's fun to learn

    stuf • I like isolation! a.k.a. I just hate to have crap on my machine • I like to experiment • I like to organize
  3. I explained this part live using Duplo bricks part live

    using Duplo bricks I explained this part live using Duplo bricks part live using Duplo bricks
  4. What do you need to create a container? • It

    all starts with an image (distro + libraries + runtime + default config) • If your run an image it becomes a container (like class → object) • Can have dependencies like config, storage, networking
  5. Advantages • Isolation • Safe to install • Easy to

    run multiple versions alongside each other • Safe to uninstall • You’ll learn a lot!! • Forces automating entire install process
  6. Disadvantages • Finding out what a program need can be

    hard • Find out why a program doesn’t start can be hard • Example: Why are Skype logs disabled by default AND encryted ?!
  7. Containerizing an desktop app • Is there an image you

    can customize? • If not is there a suitable base image? • If not just start with a base distro • No special tools should be required
  8. Run • Let application run as yourself (uid/gid) • Share

    files the application needs to edit • Share (existing) config files • Store important config files in version control • Share devices (like display) • Sometimes enable inter process communication
  9. Some live examples: • PHPStorm IDE • Git-Cola UI •

    System test using Selenium • Slack