Documentation of Docker Containers with i-doit

background
blog-icon-white

Docker containers are relatively small, versatile and tailor-made for many applications. They save our existing resources and can scale our IT infrastructure at a rapid pace. The containers, as used by Docker, are nevertheless ultimately a form of virtualisation. i-doit already masters many types of virtualisation, “out of the box”, so for the sake of completeness the documentation is also between images and containers.

 

What are Docker Containers?

 

Docker makes it possible to virtualise applications without virtualisation software. What sounds confusing at first, is in principle quite simple. Almost every application depends on certain packages to run. Whether it is PHP in a certain version, a database or a web server, it depends on the application. With Docker, all basic requirements (dependencies) are packed together with the application in a so-called container. When this container is transferred to another host and executed, it is no longer necessary to adapt the existing packages. Everything that is necessary for the execution of the application is in the container.

 

What are the advantages of Docker Containers?

 

Saving resources

Since Docker containers are not virtualised in the classic sense, the use of an additional operating system can be dispensed with. Since the operating system available on the host is used, resources are saved significantly during operation. Despite this shared use, the containers operated are isolated from each other and from the host. By grouping them into container images, they can be exchanged and started between different systems.

Fast and easy scaling

Docker containers are also easily scalable. If you need an additional instance of an application, simply start a new container. If there are many containers to manage and organise, tools such as Kubernetes come into play.

Modularisation

Microservices are an architecture in IT where more complex applications are composed of small, independent building blocks. Docker containers are ideally suited for this use. An application can be distributed across multiple containers instead of running on a single virtual server.

Rollback and versioning

Another advantage is version control. Because Docker containers are built with different layers, changes are automatically recorded. If necessary, you simply revert to a previous version (rollback). Docker containers can thus be used efficiently, especially in the agile development of applications or when implementing new functions.

 

Are there any disadvantages with Docker Containers?

 

By not having their own operating system, the containers are more closely linked to the host than is the case with “real” virtual machines. As a rule, many containers on a server share an operating system kernel: that of the host system. If the operating system is compromised, it also affects many containers at the same time.

Another disadvantage is the high complexity of container technology. While VMs are easy to set up and monitor, with containers this is much more demanding. In addition, tools like Kubernetes are also quite complex to set up and manage.

 

Is Docker only available on Linux?

 

No. Docker was developed on and for Linux. However, it is now also available on Windows Server/Windows 10 and Mac OS. Cloud services such as Microsoft Azure, Amazon Web Services and Google Cloud also offer corresponding container technologies. Thus, cloud applications can be provided securely and scaled easily if required.

 

Preparation: Create Docker images in i-doit as a separate Object type.

 

To document the Docker infrastructure in i-doit we have to make some preparations. First we create the new Object type, “Docker-Image”, in the Object type category “Software”.

 

ObjekttypDocker-Image

 

Create custom categories

 

For the latter we now create two user-defined categories in the administration area. These should be used to describe the function or content of the image and to include the link to Registry. The first category is also named “Docker Image”. We apply this to the object type “Docker Image”. Then we add a link field with the field name, “Registry”. Then we save our new category.

 

customcategory_docker-image-2

 

Add information about loading the image

 

A Docker Image Object now has two fields in the category with the same name: A link to the registry and the mandatory description that i-doit automatically adds. In the description field, we can now enter the pull command that is used to add the image. By simply adding these two fields, we have documented which registry the image is located in and what has to be entered at command line level to load it.

 

docker-image_panic_debian_stretch-2

 

A second custom category

 

As the second custom category we create, “Container”. This documentation category gives us an overview of which instances of the image exist. We use the function of the variable report, which shows all documented instances of the image. We add this category to the object type, “Docker-Image” again.

 

customcategory_container-1

 

Create your own report

 

Since we want to see all active Docker images, it makes sense to create a separate report for this and display it directly in the Object. Therefore we create a new report via Report Manager and set the condition, “Object type = Docker image”.

 

report_manager_docker

 

Establishing the relationship between image and container

 

In order to be able to document the containers as well, we create a new Object type, “Container”, in the Object type group, “Infrastructure”. Here we select the properties we want to document. Usually, we want to achieve the same documentation quality as with, “Virtual Server”. Therefore we take the properties from this category.

In order to be able to establish a relationship between image and container, we create a user-defined category named, “Docker”. For a unique identification, a text field with, “Name (Hash)”, an Object relationship field, is useful, with which we can later select our, “used image”. It is important for this configuration that we specify, “Container”, as the object type.

 

custom_category_docker

 

The finished category

 

The created category is now created in Objects of type, “Container”. Here the name of the container and its hash, the run command and a reference to the underlying image are stored.

 

docker-kategorie

 

Add the virtualisation system

 

To complete the virtualisation techniques we extend the features of the, “Virtual Machines”, by the virtualisation system, “Docker”.

 

virtualisierung-docker

 

Document Dockerfile

 

You can extend your documentation by placing the Docker file under Files. This way you have all the information about your Docker virtualisation in one place.

 

Conclusion

 

Docker images and containers can be documented quickly and completely with i-doit. Our special thanks go to Christian Wally from our i-doit partner, “don’t panic”, for this article. Visit dont-panic.at for more innovative solutions and smart ITSM extensions.

Oct 10, 2024 5:20:25 PM

i-doit 33: New Add-on & Subscription Center and i-doit Add-on Flows


We're excited to unveil i-doit version 33, a release that brings powerful new features to optimize your IT documentation and management processes....

Read More
new i-doit.com website homepage image

Sep 4, 2024 7:16:15 PM

Introducing the new i-doit.com: A Fresh Look and Enhanced User Experience


Have you explored our new i-doit.com website? Discover the enhanced features and resources.

This redesign marks an important milestone for us. It...

Read More

Jul 19, 2024 4:21:29 PM

Recover Fast from IT Outages: The Power of IT documentation and i-doit


On July 19, 2024, a faulty update from a leading cybersecurity company (Crowdstrike) caused a chain reaction that grounded numerous airlines,...

Read More