How to create lightweight Docker images using multi-stage builds?

New method of using the multi-stage builts with Docker 
27 June 2017   1556
Docker

Is an open source software platform to create, deploy and manage virtualized application containers on a common operating system, with an ecosystem of allied tools
 

Elixir

Dynamic, functional language designed for building scalable and maintainable applications

Since version 17.05, Docker supports multi-stage builds. Multi-stage builds you will be able to have a single Dockerfile contain multiple FROM instructions, separating multiple stages of a build, where artifacts from one stage can be used in the next and all resulting in a single image.

Advantages of this technology:

  • Reduction of image's size. Packages increase the size of your image but aren’t required during runtime.
  • Ability to install debugging\tracing packages only to the final container.
  • The final container can be based off a slim image.
  • Dockerfiles are easier to maintain.

Dimitris Zorbas, engineer and open-source fan, created a big article with tutorial how to use this technology on practice. 

Kubic to be Adapt for ARM64

Kubic environemnt is built on the basis of the openSUSE, Docker, Kubernetes and Salt
01 February 2019   325

The openSUSE developers reported providing support for the AArch64 architecture in the Kubic toolkit, which allows you to deploy and maintain a cluster for running applications in insulated containers. An iso image (1.1 GB) is available for download, providing a complete solution for creating CaaS systems (Container as a Service) on server boards with processors based on AArch64 architecture. The solution is assembled from a single code base, also used to form assemblies for the x86_64 architecture.

Of the editorial restrictions for AArch64, some packages that are specific to x86_64 systems are unavailable, for example, kubernetes-dashboard is not supported. The basic boot image is formed for 64-bit ARM boards with UEFI support with a sufficiently large amount of RAM (more than 1 GB), such as Overdrive 1000, D05 and ThunderX2. For boards without UEFI, such as Pine64 and Raspberry Pi 3, a separate MicroOS-based image was prepared (a stripped-down distribution with atomic installation of updates, setting up via cloud-init, read-only root section with Btrfs, runtime Podman / CRI-O and Docker ). It is possible to organize an automated installation on a large number of machines using the standard AutoYaST profile or to load nodes over the network (PXE / tftpboot).

The Kubic environment is built on the basis of the openSUSE distribution (Tumbleweed repository), the Docker toolkit, the Kubernetes cluster isolated container cluster orchestration platform, and the Salt centralized configuration management system. To manage the cluster, Velum interface is proposed, which allows you to deploy a Kubernetes-based cluster in one click and organize its management, including adding and removing nodes, monitoring failures, and determining update installation policies. Kubernetes is launched on nodes in virtual machines deployed based on libvirt or OpenStack. It supports the launch of containers prepared using the Docker toolkit. Container images are distributed as RPM packages.