Getting Started

Getting docker installed and running on a Pine64 Quartz64 A is relatively straightforward once you have found a disk image that has a few necessary things. We have a number of artisan-crafted operating systems. Most are Debian/Ubuntu feeling; there is DietPi which has a very nice look and feel - minimalist creation. There is also Plebian Linux, which is maintained by CounterPillow. It is very bleeding edge for its development stage. It feels less like a Linux system and more like a quirky NetBSD system. But, will not be using either of those; we will be using Armbian. There are community maintained disk images but there is one problem: as of the time this post has been written, Dec 12, 2022, the images available from Armbian on Github do not have functioning ethernet. There is a paragraph or so on Pine64's wiki about network connectivity, but I am not certain if the issue I am experiencing is related to that or if it is just a red herring.

Even though DietPi and Plebian have that familiar Debian/Ubuntu smell, each has its own issue that makes us drive toward Armbian.

First, DietPi. I love the minimalist feel but attempting to run sudo apt install docker-ceresults in dpkg failing for some unclear reason. I really wanted something that should easily follow instructions that are found just about anywhere on internet for installing Docker on a Debian/Ubuntu system -- I did not want to take time trying to figure what was causing this error.

Second, Plebian. Plebian feels like NetBSD from early 2000s. It's rough around the edges and according its maintainer, should not be used in any capacity other than trying to help develop the distribution. The main issue that I found is it is based upon Debian bookworm, also known as testing. Docker does not have readily available Debian packages for bookworm. Bookworm is too new. I could have taken the time to figure out how to handcraft an install, but that is not what I am looking to do.

If you dig deep enough into the world of niche internet forums related to Pine64, Quartz64 or single board computers, you may find your way to Quartz64 Model A installation help --> brings you to this forum post on Armbian's main forum site. Scroll down, and you find another link, this time to use balbes150's Armbian's file storage (mirror).

I selected a Jammy distribution image. Why? Because Docker has packages readily available for Jammy.

Write a Disk Image

There are literally thousands of examples of how to write a disk image to an SD card or eMMC module; everyone's setup maybe a different from others. If you are GUI-inclined, I would recommend balena Etcher. One of the only issues I can see if it will not run on Arm-based computers, it is only available for x86|64.

If you are more command line inclined, you can use the program dd. Here is one that is fairly indepth look at using dd. If you are impatient and know what the name is of your device, something like the following:

xzcat Armbian-Quartz64-jammy-edge.img.xz | dd of=/dev/mmcblk1 status=progress

This assumes many things, but as a skilled and sophisticated Linux/UNIX user, you should not have any issues writing an image to a media type.

dd-writing-image-to-media

Installing Docker

The following is a summarization of Install Docker Engine on Ubuntu.

Cleanup Old Versions

Previous versions of docker were called a few things; let's remove the cruft.

$ sudo apt-get remove docker docker-engine docker.io containerd runc

With those things removed, we will move onto setting a few things up to use Docker's package repository.

 $ sudo apt-get update
 $ sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Add Docker's GPG key (this makes it so you are less likely to get a compromised docker patch from Docker):

 $ sudo mkdir -p /etc/apt/keyrings
 $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o \
    /etc/apt/keyrings/docker.gpg

Setup the repository:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \    
      https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

This settings things up for us to be able to pull down officials packages from Docker. Let's refresh our available packages and install Docker.

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Docker should be running; let's test it.

$ sudo docker run hello-world

success!