EIA Data Dive

A refinery produces many products: gasoline, diesel, jet fuel, fuel oil, propane, lubricants, chemical feedstocks, and waxes. The differences in prices between products and feedstocks drive…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




The First Thing You Should Know When Learning About Docker Containers

If I could go back in time when I was learning docker I wish someone would have started with explaining to me the docker conceptual philosophy behind it before anything else

Most of the time, when someone explains docker to you, you leave the conversation or article thinking “Oh I get it, containers are like VMs but with less bloat and quicker to run because they run on top of your Linux OS”

However that’s not what docker container design philosophy is and certainly not the best way to run them in a production environment or any server for that matter.

More than a technical definition, that’s a philosophical definition and docker has been designed around that idea. Hence why docker-compose refers to containers as services. So when designing your containers and servers around docker you should keep in mind the following design principles:

Why do it this way on a production server? Because all the work that you do in your server should be done behind curtains and committed to a central repository and, if applicable, container registry. Any configuration, code or service that you apply to your servers should be done in a way that discourages fiddling and hotfixing on the spot to avoid snowflake configurations and untracked changes that are hard to replicate later.

Also, I believe that the configuration you have to do once you are in the server should be kept to a bare minimum and you shouldn’t need to include Dockerfiles, unnecessary mounts to data that does not change or configuration that changes very rarely.

Another good reason why implementing it this way would be a great idea is that if in the future you decide to do away with servers and place your containers in let’s say Kubernetes, then most of your work would already be done and migration wouldn’t be a massive pain to do.

Of course these principles are not dogmatic, different companies and individuals have different needs and sometimes a different approach may be more suitable and logic and good reasoning should dictate in such circumstances.

In order to implement this philosophy all the way through it is important that Developers and Operations work together and understand these concepts, otherwise implementation becomes very problematic.

This is why working in an organisation with a strong DevOps culture is important to create resilient, replicable and scrapable environments that can easily and quickly be recreated.

Add a comment

Related posts:

What value do media monitoring tools bring to the marketing mix?

The toolkit for a communications professional is becoming increasingly sophisticated and important, not only for operational success but also for detailed reporting. One of the key building blocks…

Laser Technology and its Industrial Applications

Laser technology involves the use of light amplification by stimulated emission of radiation. Essentially, a laser is a device that emits a narrow, intense beam of light that is highly directional…

10 Passive Income Idea.

10 Passive Income Idea.. Dividend-paying stocks: Invest in stocks that pay out regular dividends to shareholders. This can provide a steady stream of passive….