Some of you may be aware I run a RaspberryPi cluster called FrankenPi I’ve been running a Docker swarm on it originally with four Pi’s but last year added two more.  The original four Pi’s were all running Engine 18.6.1-ce but somehow when I added the two new Pi’s they were running Engine 17.06.1-ce while the swarm was working it kind of annoyed me seeing that two Nodes were running, effectively, out of date engines but up until today I was too lazy to do anything about it.

Now the other day I was having problems with docker on my Clusterhat which is basically a physically scaled-down version of FrankenPi, and I discovered that there is, in fact, a bug with the latest release for ARM. It would seem the advice was to downgrade your installation. To be honest, I didn’t fancy jumping through hoops and so left the Clusterhat with the intention of waiting for a fix or the next release so when this morning, after updating Frankenpi, I started to see the same issue on FrankenPi-06 I decided to bit the bullet and fix it.

What did you do?

Now this fix is probably way too much, and there’s probably a much simpler method, but it worked for me doing it this way. Before we begin, if you’re using this method, on your own head be it.

First I removed the Node (FrankenPi-06) from the swarm. Given I intended to blow it away I was not bothered about stopping Docker on FrankenPi-06

docker swarm leave

I then went on to the Manager node and did:

docker node rm FrankenPi-06

Next, I did

sudo apt-get remove –purge docker

I then installed using the docker script

curl -fsSL https://get.docker.com -o get-docker.sh

and then

sh get-docker.sh

Now this installs the very latest version Engine 18.09.0-ce which as I explained earlier is broken on ARM so next, I downgraded to 18.6.1-ce (I read somewhere that 18.06.3 has broken networking)

sudo apt-get install docker-ce=18.06.1~ce~3-0~raspbian

That happily downgrades the installation. It complained about some configuration errors, but I chose to ignore it. Rebooted, although the instruction is to log out and back in again however I chose to ignore that advice too! I’m such a rebel.

Once I’d logged back into FrankenPi-06 I rejoined it to the swarm

docker swarm join –token xxxxx-1-xxxxxxxxx 192.168.x.xx:2377

Hey presto the Node reappeared in the swarm running the correct Engine. It was just a simple case of replicating the procedure FrankenPi-05, and now all the Nodes are singing from the same song sheet.

Leave a Reply

Your email address will not be published. Required fields are marked *

Post comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.