Docker 32 Bit Ubuntu



Thanks to the huge amount of feedback this weekend from gamers, Ubuntu Studio, and the WINE community, we will change our plan and build selected 32-bit i386 packages for Ubuntu 19.10 and 20.04 LTS. We will put in place a community process to determine which 32-bit packages are needed to support legacy software, and can.

Thanks to the huge amount of feedback this weekend from gamers, Ubuntu Studio, and the WINE community, we will change our plan and build selected 32-bit i386 packages for Ubuntu 19.10 and 20.04 LTS.

  • Download Ubuntu desktop, Ubuntu Server, Ubuntu for Raspberry Pi and IoT devices, Ubuntu Core and all the Ubuntu flavours. Ubuntu is an open-source software platform that runs everywhere from the PC to the server and the cloud.
  • See also your other options: a snap from Docker Inc, or a more-recent standard Ubuntu package in docker.io: askubuntu: Docker-CE or docker.io package – nealmcb Jun 22 '18 at 15:00 Still have this problem in July 2019.

We will put in place a community process to determine which 32-bit packages are needed to support legacy software, and can add to that list post-release if we miss something that is needed.

Community discussions can sometimes take unexpected turns, and this is one of those. The question of support for 32-bit x86 has been raised and seriously discussed in Ubuntu developer and community forums since 2014. That’s how we make decisions.

After the Ubuntu 18.04 LTS release we had extensive threads on the ubuntu-devel list and also consulted Valve in detail on the topic. None of those discussions raised the passions we’ve seen here, so we felt we had sufficient consensus for the move in Ubuntu 20.04 LTS. We do think it’s reasonable to expect the community to participate and to find the right balance between enabling the next wave of capabilities and maintaining the long tail. Nevertheless, in this case it’s relatively easy for us to change plan and enable natively in Ubuntu 20.04 LTS the applications for which there is a specific need.

We will also work with the WINE, Ubuntu Studio and gaming communities to use container technology to address the ultimate end of life of 32-bit libraries; it should stay possible to run old applications on newer versions of Ubuntu. Snaps and LXD enable us both to have complete 32-bit environments, and bundled libraries, to solve these issues in the long term.

There is real risk to anybody who is running a body of software that gets little testing. The facts are that most 32-bit x86 packages are hardly used at all. That means fewer eyeballs, and more bugs. Software continues to grow in size at the high end, making it very difficult to even build new applications in 32-bit environments. You’ve heard about Spectre and Meltdown – many of the mitigations for those attacks are unavailable to 32-bit systems.

This led us to stop creating Ubuntu install media for i386 last year and to consider dropping the port altogether at a future date. It has always been our intention to maintain users’ ability to run 32-bit applications on 64-bit Ubuntu – our kernels specifically support that.

Install Docker 32 Bit Ubuntu

The Ubuntu developers remain committed as always to the principle of making Ubuntu the best open source operating system across desktop, server, cloud, and IoT. We look forward to the ongoing engagement of our users in continuing to make this principle a reality.

Talk to us today

Interested in running Ubuntu in your organisation?

Newsletter signup

In this guide we'll get started with Docker on 64-bit ARM, build 64-bit images, benchmark the code and upgrade to the latest version of Docker.


Late to the party, here's my Odroid C2.

Earlier this year Docker started to quietly, semi-officially support the ARM platform and the Raspberry Pi Zero/2/3 boards when running Raspbian.

Raspbian is a port of Debian for the armhf architecture and the default operating system for the Raspberry Pi.

Several boards have recently become available which have an ARMv8 or 64-bit architecture. A couple of these are the Pine64 (around 15 USD) and the Odroid-C2 (43 GBP). These boards both have Ubuntu images available so I decided to find out how easy it was to setup Docker and build some test images.

Installation

If you have either of these two boards here's a deep link to the image download pages for Ubuntu 16.04:

Once you have flashed the Ubuntu 16.04 image to your Pine64 or Odroid-C2 log in over ssh and type in:

Spoiler alert: curl | sh installation method is not currently working for ARM 64-bit. Use apt-get.

Resulting in:

Docker 32 Bit Ubuntu

So it seems that the Ubuntu ports repository already contains Docker 1.12.1 (quite a recent version of Docker) - this is a really nice surprise and in most cases this is all you will need to start building and testing images.

Justin Cormack who maintains Alpine Linux suggested trying out the Alpine 64-bit ARM image.

Word of caution: the README.md file on the Docker Hub mentions an invalid tag. Right now there isn't even a aarch64/alpine:latest tag, so make sure you are using the edge tag.

Nice, it appears to work really well and the container started quickly too.

Here's a picture of my Pine64 board kindly donated by Uli Middelberg (a follower on Twitter).


Limited edition Pine64 developer-board

Trying docker-compose

Docker Compose has become such a vital tool for defining and linking services that it is likely to become integrated into the docker CLI going forward.

When using this installation method (apt-get) you do not get docker-compose bundled in with the engine. So let's install python-pip and pull down the latest version.

Here's a sample hit-counter built out with Node.js and redis.

Use docker-compose ps to find the port where the micro-service is running and then try accessing it with curl.

I am using -4 to force ipv4 - some Ubuntu/Debian distributions try to use ipv6 by default due to a new entry in /etc/hosts.

Why don't you install apache bench and see how many requests per second you can get out of the application?

Here's my results:

If you have multiple cores then you can scale the application upwards and measure the increase in throughput. For a simple guide to Docker services check out my Swarm Mode series.

Enterprise-grade ARM

Packet.net provides a 96-core ARMv8 board costing $0.5/hour. These specifications are nothing like the hubmle (but versatile) Raspberry Pi. It even has 128GB of ECC RAM and a huge SSD - it was definitely designed for production workloads.

Ubuntu
  • 96 Physical Cores @ 2.0 GHz (2 × Cavium ThunderX)
  • 128 GB of DDR4 ECC RAM
  • 340 GB of SSD
  • 20Gbps Bonded Network

Why not try spend a few cents trying out Docker on some impressive hardware? I have no affiliation to Packet.net - just admiration for this hardware.

Upgrading to 1.12.3

Docker 1.12.3 is the reference build of 1.12 so we should upgrade as soon as possible to get all the fixes around Swarm Mode and overlay networking.

Now if you were on a Raspberry Pi (32-bit ARM) you could upgrade to the latest stable release by typing in:

I tried this out on all three platforms but was met with a bunch of errors. I pinged some folks on the Docker Community Slack channel in #arm and was assured that some fixes are on the way to support this.

The easiest way to get up to date is to rebuild from Github. Normally we would build with make deb and install the resulting Debian package - it turns out that this is currently not working either.

So instead let's create a tgz with all the binaries and deploy them over the top of 1.12.1.

  • Install screen

This will take a while so install screen with apt-get. That way, if you get disconnected screen -r will get you back into the terminal.

  • Clone the repo and make the binaries

You will find the .tgz in bundles/latest - unzip it directly over the top of 1.12.1 and then restart the service:

You will now have the latest Docker version.

What about Swarm Mode?

I've only got two ARMv8 boards but was able to provision 5x 96-core hosts on Packet.net which use the Cavium ThunderX chipset. It's no surprise but this incredible machine build the Docker binaries way quicker than my Pine64!

After upgrading to the latest Docker version Swarm Mode worked well for scheduling tasks including inter-service communication between the Node.js and Redis app above. If you're familiar with Swarm Mode, here's my test script:

Docker 32 Bit Ubuntu

Docker 32bit Ubuntu Download

Final notes:

Bit

Please bare in mind that ARMv8 images will need to be rebuilt from scratch just like any armhf or Raspberry Pi images. I have a series you can follow and adapt for ARMv8, just check out the links below.

Keep an eye on the issues over on the Docker repo. Much of the work-arounds here will not be needed after the Docker team resolve the issues with the curl | sh.

Questions, comments, suggestions?

Please get in touch on Twitter @alexellisuk.

Docker Run Ubuntu 32 Bit

Here are some follow-up links for Docker on ARM.