Ist Docker für den Produktionseinsatz generell stabil genug?

Hallo,

das ist eine Off-Topic-Frage.

Wir verpacken und verteilen eine Webanwendung und haben das Gefühl, dass wir den Deployment-Weg von deb/rpm auf Container-Technologie ändern müssen, um die Versionskontrolle von Abhängigkeiten zu übernehmen (z. B. eine neuere Python-Version auf älteren Distributionen).

Ich habe mich bereits mit LXC/LXD beschäftigt, und die Idee, Anwendungen im alten Stil zu entwickeln, bei denen der Zustand innerhalb des Containers gespeichert wird, klingt verlockend. Allerdings müssen wir auch auf RHEL/CentOS bereitstellen, und der Status der LXC- und LXD-Pakete sieht dort bedauerlich aus. Es sieht auch nicht so aus, als hätten LXD oder LXC in der RHEL-Welt eine Zukunft.

Ich habe Docker aufgrund verschiedener Design- oder Sicherheitsprobleme, die es im Laufe der Jahre gab, sowie aufgrund des Paradigmenwechsels hin zu zustandslosen Containern, den wir „Old-Schooler

Wir betreiben Hunderte von Servern in Dutzenden von Rechenzentren sowohl auf Bare-Metal-Hardware als auch in der Cloud, und jeder Teil der Discourse-Anwendung wird in Docker-Containern ausgeführt.

Docker hat zwar seine eigenen Fehler, aber für uns überwiegen die Vorteile die Probleme.

Nur eine Sache:

Ich weiß nicht genau, was du damit meinst, aber langfristige Zustandsdaten wie Datenbankdaten werden normalerweise in Volumes gespeichert, die auf den Host gemappt sind.

Bekanntlich laufen Discourse-Container sowohl auf Hosts mit Ubuntu als auch mit RHEL-Distributionen (Ubuntu 18.04/16.04 und CentOS 7/8) problemlos?

Ist dies von Docker zu erwarten?

Die meisten Nutzer verwenden Ubuntu; dies ist das empfohlene Betriebssystem.

Wir verwalten einige On-Premise-Bereitstellungen auf CentOS 7 (auf Kundenwunsch) ohne Probleme.

Relevante Teile der Ansible-Rolle:

- name: Docker-Repository hinzufügen (CentOS)
  get_url:
    url: "https://download.docker.com/linux/centos/docker-ce.repo"
    dest: '/etc/yum.repos.d/docker-ce.repo'
    owner: root
    group: root
    mode: 0644
  when: ansible_distribution == 'CentOS'

- name: Docker installieren
  package:
    name: "{{ item }}"
    state: present
  with_items:
  - docker-ce
  - docker-ce-cli
  - containerd.io

- name: Sicherstellen, dass Docker gestartet ist und beim Booten aktiviert wird
  service:
    name: docker
    state: started
    enabled: yes

Wir betreiben unsere gesamte Infrastruktur auf Debian. Überall ohne RHEL.