What are containers. Open source for entrepreneurs

What are containers

Continuing with our series of articles on useful applications for entrepreneurs, now it's the turn of the containers. Although it is a technology that is used basically by the information technology area, unlike all the others that we discussed, I learned the hard way that my father was right when he told me that one had to know everything. Given that software today is a key component of any startup, it doesn't hurt to have a basic notion of how it works.

I will start by apologizing for the commonplace of putting shipping containers to illustrate the article (something that everyone who writes on the subject does) But, as it is the best analogy to explain what containers are and what they are for in computing, I resign to any pretense of originality.

Just as transport containers arose to adapt to the differences in the configuration of the means of locomotion, thus avoiding wasting time accommodating the load, its digital version serves to avoid that programmers have to adapt their applications to all possible configurations.

What are containers

A container consists of everything necessary for the execution of a program: the application, plus all its dependencies, libraries and other binaries, and the configuration files required to run it, all housed in one package. By containing everything necessary for its execution, the differences between the different operating systems become irrelevant.

It has happened to all of us that we like a certain program, but the update of the operating system makes a necessary dependency no longer available. If we know how to do it, we can create a container with the necessary dependencies and the program and run it without problems.

Another concept associated with containers is microservices. Instead of packaging an entire application, you can create a container that fulfills a function that multiple programs need. Let's say you have a paid online publication. The publication access function and the billing function will share information from the same database. Therefore you could have a separate container for the latter.

Differences with virtual machines and self-contained packages

The main difference with virtual machines is that they simulate hardware, that is, in practice it is like using an operating system on a normal computer

For self-contained package formats like Snap, FlatPak, or Appimage, Although they contain all the dependencies to function, they still use components from the host operating system.

Advantages of containers

  • Microservices approach: Thanks to containers it is possible to separate applications into their component functions and reuse them.
  • Consistency: Since a program installed in a container includes everything necessary for its execution, its behavior will be exactly the same no matter when and where it is executed
  • Portability. As long as the same platform is used for creating and running the containers, the program will work regardless of whether it runs on Windows, Linux or Mac.

Container Technologies

Some of the technologies available to deploy containers are

Docker

Es the platform best known for creating and running containers.
Docker allows you to package, ship and run applications on any public or private cloud or desktop operating system.

Red Hat CodeReady Containers

Es a tool by Red Hat It is used from a virtual machine and can be used for container development and testing.

Lxd

Developed by Canonical, this management system From containers it gives us an experience very similar to that of using a virtual machine. We have a number of preconfigured Linux distribution images available and we can create our own.

Kubernetes

Since managing multiple containers can be somewhat complex. Kubernetes andIt is a tool that allows us to easily implement changes and updates in all the containers used.  If something goes wrong, Kubernetes lets you roll back to the previous state, restart the containers that failed, remove them, and replace them.

Singularity

It is a solution of creation and execution of containers designed for scientists. Containers created with Singularity can be used to package complete scientific workflows, software and libraries, and even data.

You can also import images created with Docker without having to install it.

Singularity can import your Docker images without the need to have Docker installed or be a superuser.


Leave a Comment

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

*

*

  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.