DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workkloads.

Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • Tips for Managing Multi-Cluster Kubernetes Deployment With High Efficiencies
  • Common Performance Management Mistakes
  • How Your Application Architecture Has Evolved
  • Are You Tracking Kubernetes Applications Effectively?

Trending

  • AI Meets Vector Databases: Redefining Data Retrieval in the Age of Intelligence
  • Recurrent Workflows With Cloud Native Dapr Jobs
  • A Guide to Container Runtimes
  • Create Your Own AI-Powered Virtual Tutor: An Easy Tutorial
  1. DZone
  2. Software Design and Architecture
  3. Microservices
  4. Docker Daemon for 32-bit Architecture

Docker Daemon for 32-bit Architecture

This post provides the steps required to build a Docker daemon for 32-bit Linux platforms. Read on to see how it's done.

By 
Jim Bugwadia user avatar
Jim Bugwadia
DZone Core CORE ·
Feb. 17, 16 · Tutorial
Likes (5)
Comment
Save
Tweet
Share
17.5K Views

Join the DZone community and get the full member experience.

Join For Free

This post provides the steps required to build a Docker daemon for 32-bit Linux platforms.

Background

Software today is driven by speed–move fast, learn fast, and deliver fast! Nirmata, my company, enables software developers to move fast by making it super easy to deploy, operate, and optimize their containerized applications. Nirmata builds on Docker, the most popular container technology around. Docker is commonly used in x64 architectures and with popular Linux distros’ like Ubuntu, RHEL, and CoreOS. However, there continues to be a steady demand for deploying containers on other platforms and architectures like Yocto, Kali Linux, and 32-bit architectures.

At Nirmata, we are working with a customer in the IoT space who requires a 32-bit Docker daemon. Although Docker continues to add support for many platforms and architectures, it does not seem like official 32-bit support is coming anytime soon (issue #136). There is an existing blog post, which helps build Docker on a 32-bit platform, but a lot has changed in Docker world since then.

In this post, I have documented the steps I used to build and use Docker on 32-bit platforms:

Overview

Docker docs provide a well-detailed instruction set for setting up a dev environment, however, it doesn’t provide any instructions to build a Docker daemon for a 32-bit platform.

Docker provides a Dockerfile in the root directory of its Git repository for building a Docker dev environment. The Dockerfile builds a base image, which has all the tools and binaries required for building a Docker daemon binary. For building a daemon compatible with 32-bit, one can follow the same steps the Docker doc suggests, with the following changes to the Dockerfile.

  • Use a 32-bit Ubuntu image as the base image
  • Use clang-3.6 version
  • Install Go for a 32-bit platform

Note: These steps are tested on an Ubuntu virtual machine with at least 2GB memory, but should work the same on any x86_64 Linux distribution.

Detailed Steps

Here are the complete steps to build a 32-bit Docker daemon from the Docker GitHub branch:

  • Install git
  • $ sudo apt-get install git-all
  • Install make
  • $ sudo apt-get install build-essential
  • To install Docker, follow this tutorial:
  • https://docs.docker.com/engine/installation/ubuntulinux/

  • Get Docker Source Code
  • $ git clone https://github.com/docker/docker.git
    $ cd docker/
    $ mv Dockerfile Dockerfile.backup
  • wget the Dockerfile to create a 32-bit container
  • $ wget https://gist.githubusercontent.com/prateekgogia/05f058bafbccc2478fcc/raw/1db60ea471678cfb55185215defcf371f7dcec1d/Dockerfile
  • We can now build the Docker build environment. This will create a Docker-dev image with all the required tools. Running this command for the first time will take some time.
  • $ make build
  • Once the command completes, run 'Docker images' and it should show a Docker-dev image. This image has all the tools and binaries required to build a Docker daemon. Now, we can build a 32-bit Docker daemon using a docker-dev container image.
  • $ make binary

    A docker binary for a 32-bit platform will be generated in directory – "bundles/latest/binary."

    A 32-bit Docker daemon will only support 32-bit container images. There are a few 32-bit images available on the Docker hub. If you are using Go, you can also create a static container with a 32-bit binary to run images on a 32-bit Linux Platform.

    Summary

    It’s a great time to be a software developer, and at Nirmata we are excited to be building a platform that empowers developers by allowing them to focus on their applications, while we help take care of the heavy lifting for applications, operations, and management.

    I hope this brief post helps you with your software adventures! For any further questions feel free to reach out to me at prateek@nirmata.com.

    You can explore Nirmata at: http://try.nirmata.io

    Docker (software) 32-bit Architecture

    Published at DZone with permission of Jim Bugwadia, DZone MVB. See the original article here.

    Opinions expressed by DZone contributors are their own.

    Related

    • Tips for Managing Multi-Cluster Kubernetes Deployment With High Efficiencies
    • Common Performance Management Mistakes
    • How Your Application Architecture Has Evolved
    • Are You Tracking Kubernetes Applications Effectively?

    Partner Resources

    ×

    Comments
    Oops! Something Went Wrong

    The likes didn't load as expected. Please refresh the page and try again.

    ABOUT US

    • About DZone
    • Support and feedback
    • Community research
    • Sitemap

    ADVERTISE

    • Advertise with DZone

    CONTRIBUTE ON DZONE

    • Article Submission Guidelines
    • Become a Contributor
    • Core Program
    • Visit the Writers' Zone

    LEGAL

    • Terms of Service
    • Privacy Policy

    CONTACT US

    • 3343 Perimeter Hill Drive
    • Suite 100
    • Nashville, TN 37211
    • support@dzone.com

    Let's be friends:

    Likes
    There are no likes...yet! 👀
    Be the first to like this post!
    It looks like you're not logged in.
    Sign in to see who liked this post!