Docker in production

I’ve been using Docker for my internal R&D systems for over a year now (thanks to @kcollins :slight_smile: )

As @kcollins is now @kcollins1, and with 8.1 IA are looking at licensing changes and a move to support docker officially…

Can we discuss the pro’s and con’s of using docker in production environments?

I’m a believer in the @Kevin.Herron quote “proper hardware for proper projects” (or of a similar nature), i.e. run it direct on the host, don’t VM.

I do see the benefits of docker for internal R&D, it has saved me a lot of time creating/copying/spinning up VMs.

On the other hand, it’s another layer of abstraction. Want to use the GCU (7.9) to reset admin password? Not as easy. Want to edit the .conf? etc,

Please enlighten me :slight_smile:

1 Like

@tordvd Are you using Docker in a production environment, or plan to?

Hi,
We are using docker in production. With regards to Ignition, we are delivering a project these days.

We have a sentral gateway and 4 Ignition edge(hmi,sync) nodes with nearly identical setup.

Some pros:

  • Ignition gets even more scalable. If you are unsure about the load estimates for a new system. Then you can containerize your various modules to begin with. F.eks perspective/vision, tag provider, MQTT engine, etc... As your load increases, you can move high load containers to external machines. If the load never gets to be any problem, you can simply keep the setup as is.
  • Reservation of physical cores in a vcentre for each machine in use. Then as the load increases, we move some containers out to new machines(also having physical cores reservation). This gives a minimal footprint on the vcenter vcpu's. Compared to pre creating X servers with 2-4 cores on each (for example).
  • Docker overlay network, with encryption is a simple way to secure communication between containers (gateways).
  • If everything else is in docker, why not include Ignition as well...
  • As @Kevin.Collins previously mentioned in another thread. An identical test/developer multi-gateway system can be deployed within minutes.
  • As a system integrator, is very convenient to simply redeploy the stacks when delivering the product to the customer.
  • When trouble shooting something offline for a customer, you can redeploy the an identical environment as mentioned above. Normally we do not keep delivered projects in our development vcenter...
2 Likes

On more thing. As docker can be both simple, and very advanced. We try to use portainer as much as possible. Portainer lowers the training time for engineers that does not have any linux / docker knowledge.

Given that the engineers have some basic training in the use of Portainer, then most day to day docker tasks can be done here.

As we are several developers, we use portainer templates to quickly deploy new dev containers. This is also a measure to simplify the use of docker.
https://portainer.readthedocs.io/en/stable/templates.html

2 Likes