Technology
Docker and container technology - what is it?
Maybe you've heard of Docker, containers or container technology. In recent years Docker and container technology have become increasingly popular. But what does it actually mean?
Today companies and organizations face high demands on their ability to be agile and quickly meet customers' changing needs. People often talk about promoting a DevOps culture to optimize and automate internal flows and processes. Partly to become more nimble, but also to quality-assure their deliveries. Docker and containers are part of the technology that enables the DevOps methodology.
What is Docker and container technology?
Docker is a technology, or a platform, with open source. The platform provides other programs with an interface that automates the deployment of an application through self-contained containers. The containers act like a vessel that packages an application's code. They include related files, libraries and all dependencies required for an application to run.
In the past there have been problems with applications not working as they should when moved from one environment to another. This can be due to differences in configuration, differing requirements or other dependencies that don't interoperate. By using self-contained containers, it's much easier to package and distribute applications seamlessly across different environments. This allows code to be built and run on any developer machine, either in the cloud or locally.
Containers can run several different instances, or versions, of the same application on the same operating system while keeping the instances isolated from one another. That way you don't need to install an entirely new operating system for each environment, which saves a lot of resources and streamlines processes.
The advantage of containers is that they can run multiple different instances, or versions, of the same application on the same operating system.
With container technology it doesn't matter which programming language or development platform has been used. Nor which cloud service or operating system it runs on. However, the host system must have software installed to handle platforms like Docker. To create the containers you use a so‑called Docker image. It's essentially a file or template with instructions that define the conditions for a container.
Many compare container technology to ordinary shipping containers. Even though they can hold different kinds of cargo, they are standardized and identical in design and size. That makes it easier and more efficient to transport and stack them, whether by ship or train across the world. A software container works in much the same way. They run on different platforms without needing to be changed or adapted, yet they can still contain different things. Just as a shipping container can be moved between countries, you can also create, move or delete a Docker container. This makes it easier to manage technical environments, both in terms of development, distribution and operation.
A software container works roughly like containers in real life. They can be created, run, or moved between different platforms without being changed.
The downside of the container trend
The advantages can be many, but with new technology there often come some shortcomings, not least the security aspect. For containers, security shortcomings can be about the human factor — where one has forgotten a setting, or that one has too many containers one does not have control over.
At the same time, one should weigh the security shortcomings against the benefits; for example the advantages of the automated delivery flow that containers actually provide. After all, it is possible to prevent problems and improve security. For example, by reducing the number of containers so that one has better oversight, but also by strengthening isolation between containers. By relying on libraries of vetted container templates, such as those Docker offers, one has also come a long way.
Advantages and disadvantages
Advantages
- The technology offers more efficient resource utilization
- Many of the deployment issues that arise when the development environment differs from the production environment are largely eliminated
- Containers can be set up or moved quickly
- The technology is a simpler, more convenient lightweight alternative to virtual servers
- Docker is good for applications built from microservices where individual components may need to be scaled up quickly. For example when you want to launch new features or eliminate bugs
- The technology enables writing applications that are platform independent
- Developers can work on completely different parts of a solution while easily testing the whole solution by running others' Docker containers in their local development environment
Disadvantages
- Weak isolation between containers poses security challenges
- The number of containers places demands on security. It's harder to keep track of a fragmented solution. By limiting the number of containers you can help prevent issues and increase security
Would you like to know more about how we can help you?
Get in touch with us and we'll tell you more.