Install Docker under ubuntu

Hallo,
I have another one more point
When installing docker after “https://docs.docker.com/install/linux/docker-ce/ubuntu/
the following error occurs:

“Setting up docker-ce (5:18.09.3~3-0~ubuntu-bionic) …
update-alternatives: warning: forcing reinstallation of alternative /usr/bin/doc kerd-ce because link group dockerd is broken
Job for docker.service failed because the control process exited with error code .
See “systemctl status docker.service” and “journalctl -xe” for details.
invoke-rc.d: initscript docker, action “start” failed.
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: e nabled)
Active: activating (auto-restart) (Result: exit-code) since Sun 2019-03-17 10 :52:54 UTC; 57ms ago
Docs: https://docs.docker.com
Process: 3908 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd /containerd.sock (code=exited, status=1/FAILURE)
Main PID: 3908 (code=exited, status=1/FAILURE)
dpkg: error processing package docker-ce (–configure):
installed docker-ce package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
docker-ce
E: Sub-process /usr/bin/dpkg returned an error code (1)”

the version for arm64 is installed
The entry in the sources.list “deb [arch=arm64] https://download.docker.com/linux/ubuntu bionic stable”

I have the tutorial on updating u-boot and kerne carried out after instruction.
Who can help me?

Thomas

It seems an issue. We will look at it.

Here are my steps of installing docker in ROCK Pi 4 Ubuntu server.

1 Installation

sudo apt-get update

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

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

sudo apt-key fingerprint 0EBFCD88

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

sudo apt-get update

sudo apt-get install docker-ce

sudo apt-cache madison docker-ce

sudo apt-get install docker-ce=18.06.3~ce~3-0~ubuntu

2 Check docker service status

sudo service docker status

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-03-23 19:35:31 CST; 2min 40s ago
     Docs: https://docs.docker.com
 Main PID: 3625 (dockerd)
    Tasks: 33
   CGroup: /system.slice/docker.service
           ├─3625 /usr/bin/dockerd -H fd://
           └─3647 docker-containerd --config /var/run/docker/containerd/containerd.toml

Mar 23 19:35:29 linux dockerd[3625]: time="2019-03-23T19:35:29.088391507+08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Mar 23 19:35:29 linux dockerd[3625]: time="2019-03-23T19:35:29.088708845+08:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x4420174e80, CONNECTING" module=grp
Mar 23 19:35:29 linux dockerd[3625]: time="2019-03-23T19:35:29.091399506+08:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x4420174e80, READY" module=grpc
Mar 23 19:35:29 linux dockerd[3625]: time="2019-03-23T19:35:29.091755635+08:00" level=info msg="Loading containers: start."
Mar 23 19:35:30 linux dockerd[3625]: time="2019-03-23T19:35:30.349854055+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon opt
Mar 23 19:35:30 linux dockerd[3625]: time="2019-03-23T19:35:30.963182059+08:00" level=info msg="Loading containers: done."
Mar 23 19:35:31 linux dockerd[3625]: time="2019-03-23T19:35:31.081056747+08:00" level=info msg="Docker daemon" commit=d7080c1 graphdriver(s)=overlay2 version=18.06.3-ce
Mar 23 19:35:31 linux dockerd[3625]: time="2019-03-23T19:35:31.082035301+08:00" level=info msg="Daemon has completed initialization"
Mar 23 19:35:31 linux dockerd[3625]: time="2019-03-23T19:35:31.147043288+08:00" level=info msg="API listen on /var/run/docker.sock"
Mar 23 19:35:31 linux systemd[1]: Started Docker Application Container Engine.

3 Test

sudo docker run hello-world
3 Likes

Nice. Maybe a wiki page for that? :slight_smile:

Wiki Page for Docker: https://wiki.radxa.com/Rockpi4/Docker

1 Like

Are there prerequisites for this? I did a fresh install of rockpi4b-ubuntu-bionic-minimal-20190104_2101-gpt.img and after that I followed the Wiki above to install Docker and it did not work.

Setting up docker-ce (5:18.09.4~3-0~ubuntu-bionic) ...
update-alternatives: using /usr/bin/dockerd-ce to provide /usr/bin/dockerd (dockerd) in auto mode
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
invoke-rc.d: initscript docker, action "start" failed.
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Mon 2019-04-08 23:15:45 UTC; 40ms ago
     Docs: https://docs.docker.com
  Process: 2969 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
 Main PID: 2969 (code=exited, status=1/FAILURE)
dpkg: error processing package docker-ce (--configure):
 installed docker-ce package post-installation script subprocess returned error exit status 1
Setting up libperl5.26:arm64 (5.26.1-6ubuntu0.3) ...
Setting up perl (5.26.1-6ubuntu0.3) ...
Setting up liberror-perl (0.17025-1) ...
Setting up git (1:2.17.1-1ubuntu0.4) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for systemd (237-3ubuntu10.19) ...
Errors were encountered while processing:
 docker-ce
E: Sub-process /usr/bin/dpkg returned an error code (1)

I had to “unminimize” the OS and it worked.

2 Likes

Yep, after unminimize then Docker it work.

1 Like

Very nice and all, but what is meant by ‘unminimize’ the os?

Could it also be possible to create a guide for debian please ?

The build scripts for the debian image are really easy set arch=arm64 and target=base

I am in the process of creating a 64bit Debian stretch OMV image that docker is working fine on.
https://1drv.ms/u/s!AocmAh35i26QiRoVLn1ttnlorw8g

Just build on ubuntu 16.04 or 18.04 or even a live usb image, that was the only thing as building on debian I seemed to run into probs.

https://wiki.radxa.com/Rockpi4/dev/Debian

https://wiki.radxa.com/Rockpi4/Docker

1 Like

Thank you, ill try this using the community image tat is floating around here.

BTW I think with ‘unminimize’ is meand to expand filesystem als is done on the raspberry ?

No it confused me but it sort of uninstalls non used packages and keeps them in a local cache of sorts.
From actually playing and not reading what it does.
The 960board package installs the resize service which it just disables after first use, its still there though.

sudo systemctl enable resize-helper.service to enable again so any image you ship will resize on first reboot.

Sorry for the spam, instructions unclear. unfortunately.

How does this connect with unminimize ? I still have no clue how to ‘unminimize’.

Sorry and thanx in advance!

sudo systemctl enable resize-helper.service

reboot if you where refering to resize and fill out the rootfs.

Its part of the 96boards-tools-common package from the radxa repo

https://wiki.radxa.com/Rockpi4/radxa-apt

But should work automatically on first boot then it disables itself.

Do you want me to make you a 64bit Debian with Docker installed as will do?

Thank you!

A guide would be very helpful, i’m looking to install docker on the Hornblende image that’s floating around here. I’d like to use this docker to run jupyter notebooks so i can write a digital book for my students, i’m a mechanics lecturer (therefore my IT skills are not the best :slight_smile: ).

How do the students connect local or are you going to give it a domain and have it public.
Its all relatively easy.

Basically is it going to br classroom access only or do you want it 24/7 on the internet?

1 Like

The idea is a public domain 24/7 using something like dyndns. I’m interested in learning more about linux frond end and backend communication aswell, therefore i’m not hosting the info on github and such.

Humour me so we can have a quick look at docker as its easy to install OMV on any debian image.

But a quick crash course would be to download https://1drv.ms/u/s!AocmAh35i26QiRoVLn1ttnlorw8g

login rock:rock
sudo systemctl enable resize-helper.service
sudo reboot
plug the ethernet in

rock@rockpi4:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul                              t qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP gr                              oup default qlen 1000
    link/ether 86:4e:59:ee:ba:aa brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.7/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 86092sec preferred_lft 86092sec
    inet6 fdd4:40f0:f40b:b400:a5ed:eca8:d6dc:8189/64 scope global temporary dyna                              mic
       valid_lft 6950sec preferred_lft 3350sec
    inet6 fdd4:40f0:f40b:b400:3ff9:118a:8af7:d243/64 scope global mngtmpaddr nop                              refixroute dynamic
       valid_lft 6950sec preferred_lft 3350sec
    inet6 fe80::bfcb:32a3:8b66:ce3b/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast                               state DORMANT group default qlen 1000
    link/ether 6c:21:a2:14:e0:f8 brd ff:ff:ff:ff:ff:ff
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOW                              N group default
    link/ether 02:42:1f:73:2e:56 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

From the above you will see the RockPi4 is on 192.168.1.7

In a client computer also connected to that network type 192.168.1.7 into a browser.

The default login is admin:openmediavault so login

You will then see dashboard scroll down to services

Click docker and you will get to the docker section that makes it really easy to host multiple containers.

1 Like

click pull image and in the repository paste the jupyter docker stack you wish and click start.

https://hub.docker.com/r/jupyter/datascience-notebook

jupyter/datascience-notebook

Be patient whilst it downloads the docker image as the jupyter one seems a bit of a biggie

1 Like

Which doesn’t work as that docker image is for x86_84

So basically start again but in
https://hub.docker.com/search/?q=jupyter&type=image&architecture=arm%2Carm64

grab the image and try to run

Start again with the most popular vincentravera/jupyter-docker

I dunno you are going to have to search the jupyter forums as it doesn’t seem to work on arm64.

If I grab a docker image I know.

click pull image and in the repository paste the jupyter docker stack you wish and click start.

https://hub.docker.com/_/nextcloud

nextcloud

set the host ip to the same 192.168.1.7 with hostport 8080 and the above works straight from the go also all the others I have tried also are the same.
Its not docker but jupyter and maybe it needs privileged containers didn’t try and fairly easy but you are prob better asking in the jupyter forums as never used jupyter before

1 Like