Test Drive KDE Neon with Docker and neondocker.rb - Instructions by kde.org

In this post we'll be using docker to preview the latest version of KDE Neon with Plasma 5.10, according to instructions contained in the following kde.org post:

sudo apt install docker.io xserver-xephyr
sudo usermod -aG docker $(whoami)
newgrp docker
docker pull kdeneon/plasma:dev-unstable

In this case I ran the commands and was greeted by the following error message(s):

sudo service docker start
Job for docker.socket failed.
See "systemctl status docker.socket" and "journalctl -xe" for details.
Failed to start docker.service: Unit docker.service is masked.

systemctl status docker.socket
● docker.socket - Docker Socket for the API
   Loaded: loaded (/lib/systemd/system/docker.socket; enabled; vendor preset: enabled)
   Active: inactive (dead) since Fri 2017-06-02 02:46:49 PDT; 24min ago
   Listen: /var/run/docker.sock (Stream)

Jun 01 21:08:38 desktop systemd[1]: Starting Docker Socket for the API.
Jun 01 21:08:38 desktop systemd[1]: Listening on Docker Socket for the API.
Jun 02 02:46:49 desktop systemd[1]: Closed Docker Socket for the API.
Jun 02 03:10:56 desktop systemd[1]: docker.socket: Socket service docker.service not loaded, refusing.
Jun 02 03:10:56 desktop systemd[1]: Failed to listen on Docker Socket for the API.

After which point I began following the official docker install instructions:

sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     software-properties-common
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ca-certificates is already the newest version (20160104ubuntu1).
apt-transport-https is already the newest version (1.3.5).
curl is already the newest version (7.50.1-1ubuntu1.1).
software-properties-common is already the newest version (0.96.24.7.2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

It appears everything is updated and the required packages are present. We'll continue by adding Docker's official GPG key (as of 2017/06/02) with the following command according to their instructions:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK

and verify the key:

sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

Setup the Docker Repository

$ sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"

Install the Most Recent Version of Docker From the Repository

sudo apt install docker-ce
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  bridge-utils containerd runc ubuntu-fan
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  docker.io
The following NEW packages will be installed:
  docker-ce
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 21.0 MB of archives.
After this operation, 26.0 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://download.docker.com/linux/ubuntu yakkety/stable amd64 docker-ce amd64 17.03.1~ce-0~ubuntu-yakkety [21.0 MB]
Fetched 21.0 MB in 3s (5,259 kB/s)    
(Reading database ... 228350 files and directories currently installed.)
Removing docker.io (1.12.6-0ubuntu1~16.10.1) ...
'/usr/share/docker.io/contrib/nuke-graph-directory.sh' -> '/var/lib/docker/nuke-graph-directory.sh'
Selecting previously unselected package docker-ce.
(Reading database ... 228261 files and directories currently installed.)
Preparing to unpack .../docker-ce_17.03.1~ce-0~ubuntu-yakkety_amd64.deb ...
Unpacking docker-ce (17.03.1~ce-0~ubuntu-yakkety) ...
Setting up docker-ce (17.03.1~ce-0~ubuntu-yakkety) ...
Installing new version of config file /etc/default/docker ...
Installing new version of config file /etc/init.d/docker ...
Installing new version of config file /etc/init/docker.conf ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (231-9ubuntu4) ...
Processing triggers for man-db (2.7.5-1) ...

Check You've Installed the Correct Docker Version

apt-cache madison docker-ce
 docker-ce | 17.03.1~ce-0~ubuntu-yakkety | https://download.docker.com/linux/ubuntu yakkety/stable amd64 Packages
 docker-ce | 17.03.0~ce-0~ubuntu-yakkety | https://download.docker.com/linux/ubuntu yakkety/stable amd64 Packages

Confirm Docker is Working Correctly by Running the 'Hello World' Image

sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
78445dd45222: Pull complete 
Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

At this point, we'll rejoin the initial project to install KDE Neon with Plasma 5.10 using Docker by re-attempting the following command from earlier:

docker pull kdeneon/plasma:dev-unstable
dev-unstable: Pulling from kdeneon/plasma
b6f892c0043b: Pull complete 
55010f332b04: Pull complete 
2955fb827c94: Pull complete 
3deef3fcbd30: Pull complete 
cf9722e506aa: Pull complete 
5a001ba78576: Pull complete 
34aaf99653d3: Pull complete 
65cd72ea47fa: Pull complete 
f1f7fa527cf9: Pull complete 
Digest: sha256:0ad6066a0d990717ec38de66ec7e602e838a38771554c902cd163206df8ddf6a
Status: Downloaded newer image for kdeneon/plasma:dev-unstable

Scan through the requested file in the next step prior to running it by visiting it's URL:

https://cgit.kde.org/docker-neon.git/plain/neondocker/neondocker.rb.

Download neondocker.rb and Install the Required Ruby Gems

wget https://cgit.kde.org/docker-neon.git/plain/neondocker/neondocker.rb
chmod +x neondocker.rb
sudo gem install docker-api
Fetching: excon-0.56.0.gem (100%)
Successfully installed excon-0.56.0
Fetching: docker-api-1.33.4.gem (100%)
Successfully installed docker-api-1.33.4
Parsing documentation for excon-0.56.0
Installing ri documentation for excon-0.56.0
Parsing documentation for docker-api-1.33.4
Installing ri documentation for docker-api-1.33.4
Done installing documentation for excon, docker-api after 1 seconds
2 gems installed

Attempt to Run neondocker.rb

./neondocker.rb 
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

Potentially need to install the ruby-dev package:

sudo apt-get install ruby-dev

At this point everything worked! I executed the neondocker.rb script again and the VM launched and I was presented with a fresh installation of KDE-Neon.

I was met with a bug after adjusting the settings for the Icon preview thumbnails. After selecting all of the displayed options and saving / applying, the desktop icons appeared to break. The system appears to be attempting to show a preview of the underlying icon folder, possibly, as you can see some plain text configuration directives that seem to have to do with the folder.

I ran the following according the kde.org instructions to attempt a Wayland session:

./neondocker.rb -wkap
Downloading image kdeneon/all:dev-unstable

Which did not seem to work. The VM window immediately closed after running the command. I did not debug the wayland attempt further.

Tags

 Docker  KDE  kde neon  plasma