Werden Sie Docker ersetzen? Container-Management-Tools der nächsten Generation Podman und Buildah

Hintergrund

Apropos Container, die beiden Wörter sind so eng miteinander verbunden, dass Docker an sie denken kann. Docker ist jedoch nicht standardmäßig in der 8er-Serie enthalten, der neuesten Version von Red Hat Enterprise Linux (RHEL), die von Red Hat entwickelt wurde, und wird nicht mehr unterstützt. Docker wurde so konzipiert, dass es alle Funktionen von Docker Daemon enthält. Es war praktisch, Docker-Images zu verschieben und abzurufen, Speicher zu verwalten usw. Es gab jedoch auch Probleme. Die folgenden zwei Punkte sind besonders groß.

Um dieses Problem zu beheben, wurden mehrere neue Container-Tools entwickelt. Dies sind Podman und Buildah, die ich dieses Mal vorstellen werde. Die offizielle Referenz von Red Hat ist die detaillierteste für diese Informationen, aber ich wollte einen Artikel über die Ergebnisse meiner eigenen Berührung und meines Lernens schreiben.

Was ist Podman?

Podman ist ein Tool zum lokalen Verwalten des Stopps und Starts von Pods ohne Verwendung von Kubernetes. 6be7d7353415417e558a1aa7f0ca966a.png Es hat die folgenden Funktionen.

Darüber hinaus ist Podman mit Docker und der Befehlszeile kompatibel, und die gleiche Verwendung wie der Docker-Befehl kann mit dem Befehl podman realisiert werden. Einige Docker-Optionen wurden jedoch entfernt, sodass sie nicht vollständig kompatibel sind. (Referenz [Siehe Kapitel 8 Container-Befehlszeile](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/building_running_and_managing_containers/container-command-line-reference_building-running-and- Container verwalten)))

Was ist Buidah?

Buidalh ist ein Tool, das ein OCI-kompatibles Container-Image erstellt und in die Registrierung überträgt. d08a2c27315e8830e4a200b19fb0f9f7.png

Obwohl es einige Überschneidungen mit Podman in Bezug auf die Funktionalität gibt, verfügt Buildah nur über die Mindestfunktionalität, die zum Erstellen eines Images eines Containers erforderlich ist, und seine Funktionalität ist eingeschränkt. Es hat die folgenden Funktionen.

--Daemon wird nicht verwendet

Da es möglich ist, ein Scratch-Image zu erstellen, ist es möglich, ein Container-Image zu erhalten, das noch heller ist als das Abrufen eines Images aus dem offiziellen Repository. (Beispiel: Fügen Sie das RHEL-Paket aus dem Arbeitsbild ein und fügen Sie Apache usw. hinzu.) Natürlich können Sie auch ein Image aus einer Docker-Datei erstellen. Ich habe die beiden Tools kurz erklärt, daher möchte ich sie auf der tatsächlichen Maschine installieren und erleben.

Verschiedene Umweltwerkzeuge

Die [offizielle Seite] von Red Hat (https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html-single/building_running_and_managing_containers/index) ist der beste Weg, um zu verstehen, wie verschiedene Tools installiert und verwendet werden. Es scheint einfach zu sein, daher möchte ich es im Grunde auf verschiedene Arten überprüfen.

Verschiedene Installationen und Grundeinstellungen

Sie können sie einzeln installieren. Wenn Sie jedoch über eine Red Hat Linux-Distribution verfügen, können Sie sie mit diesem Befehl alle gleichzeitig installieren.

# yum(dnf) module install -y container-tools

Richten Sie als Nächstes, wie eingangs erwähnt, einen Container ohne Root ein, damit andere Benutzer als Root den Container bedienen können.

Erhöhen Sie den Benutzernamensraum

Ein Namespace ist eine Funktion, die für verschiedene im System vorhandene Ressourcentypen vorhanden ist und den Prozess, zu dem er gehört, scheinbar unabhängige Ressourcen anzeigt. Ich kann es nicht im Detail erklären, da ich noch lerne, aber der Namespace des Benutzers zeigt die unabhängige Benutzer-ID und Gruppen-ID an. Weitere Informationen finden Sie in der Juli-Ausgabe von Software Design im Jahr 2020, "Try and Understand Linux Mechanism Corner". (https://gihyo.jp/magazine/SD/archive/2020/202007) Kehren wir zurück und erweitern den Namespace mit dem folgenden Befehl:

# echo "user.max_user_namespaces=28633" > /etc/sysctl.d/userns.conf
# sysctl -p /etc/sysctl.d/userns.conf

Machen Sie es in diesem Zustand zu einem Nicht-Root-Benutzer und stellen Sie sicher, dass Sie das Bild mit podman erhalten können.

$ podman pull registry.access.redhat.com/ubi8/ubi
$ podman run registry.access.redhat.com/ubi8/ubi cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.2 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.2"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.2 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8.2:GA"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.2
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.2"

Ich habe die von Red Hat bereitgestellten Universal Base Images (UBI) erhalten und den Container vom Image aus gestartet. Die Betriebssystemversionsinformationen des Containers werden von cat / etc / os-release für den gestarteten Container referenziert. Ich konnte bestätigen, dass ich podman als Nicht-Root-Benutzer ausführen und den Container bedienen kann. Als nächstes werden wir verschiedene Operationen erklären.

Bild suchen und ziehen

Die Bildsuche wird mit "podman search " getroffen.

$ podman search node
INDEX        NAME                                                                                  DESCRIPTION                                       STARS   OFFICIAL   AUTOMATED
redhat.com   registry.access.redhat.com/openshift3/node                                            Provides a containerized OpenShift Node with...   0    
redhat.com   registry.access.redhat.com/openshift3/prometheus-node-exporter                        Prometheus exporter for hardware and OS metr...   0    
redhat.com   registry.access.redhat.com/codeready-workspaces/stacks-node                           Red Hat CodeReady Workspaces - Node Stack co...   0    
redhat.com   registry.access.redhat.com/rhel7/kubernetes-scheduler                                 The Kubernetes scheduler watches for new un-...   0    
redhat.com   registry.access.redhat.com/openshift3/metrics-hawkular-openshift-agent                Hawkular OpenShift Agent is a Hawkular feed ...   0    
redhat.com   registry.access.redhat.com/openshift3/ose-node-problem-detector                       Node Problem Detector monitors OpenShift nod...   0    
redhat.com   registry.access.redhat.com/openshift3/ose-metrics-heapster                            Retrieves container and node metrics from an...   0    
redhat.com   registry.access.redhat.com/openshift3/metrics-heapster                                Retrieves container and node metrics from an...   0    
redhat.com   registry.access.redhat.com/openshift3/ose-keepalived-ipfailover                       Optional Pod providing keepalived support fo...   0    
redhat.com   registry.access.redhat.com/openshift3/ose-metrics-hawkular-openshift-agent            Hawkular OpenShift Agent is a Hawkular feed ...   0    
redhat.com   registry.access.redhat.com/openshift3/ose-node                                        Provides a containerized OpenShift Node with...   0    
redhat.com   registry.access.redhat.com/amqstreams-1/amqstreams10-kafkaconnect-openshift           AMQ Streams image for running an Apache Kafk...   0    
redhat.io    registry.redhat.io/openshift3/node                                                    Provides a containerized OpenShift Node with...   0    
redhat.io    registry.redhat.io/openshift4/ose-prometheus-node-exporter                            Prometheus exporter for hardware and OS metr...   0    
redhat.io    registry.redhat.io/openshift4/ose-cluster-node-tuning-operator                        'OpenShift Node Tuning Operator'                  0    
redhat.io    registry.redhat.io/openshift4/ose-node                                                'OpenShift Container Platform Node'               0    
redhat.io    registry.redhat.io/openshift3/prometheus-node-exporter                                Prometheus exporter for hardware and OS metr...   0    
redhat.io    registry.redhat.io/openshift4/ose-csi-node-driver-registrar                           CSI Node Driver Registar                          0    
redhat.io    registry.redhat.io/openshift4/ose-node-feature-discovery                              Node Feature Discovery Container Image            0    
redhat.io    registry.redhat.io/openshift4/ose-cluster-nfd-operator                                Node Feature Discovery (NFD) Operator             0    
redhat.io    registry.redhat.io/codeready-workspaces/stacks-node                                   Red Hat CodeReady Workspaces - Node Stack co...   0    
redhat.io    registry.redhat.io/codeready-workspaces/stacks-node-rhel8                             Red Hat CodeReady Workspaces - Node 10 Stack      0    
redhat.io    registry.redhat.io/codeready-workspaces/plugin-java8-rhel8                            Red Hat CodeReady Workspaces - Java 8 plugin...   0    
redhat.io    registry.redhat.io/rhel7/kubernetes-scheduler                                         The Kubernetes scheduler watches for new un-...   0    
redhat.io    registry.redhat.io/openshift3/metrics-hawkular-openshift-agent                        Hawkular OpenShift Agent is a Hawkular feed ...   0    
redhat.io    registry.redhat.io/openshift3/ose-node-problem-detector                               Node Problem Detector monitors OpenShift nod...   0    
redhat.io    registry.redhat.io/openshift3/ose-metrics-heapster                                    Retrieves container and node metrics from an...   0    
redhat.io    registry.redhat.io/openshift3/metrics-heapster                                        Retrieves container and node metrics from an...   0    
redhat.io    registry.redhat.io/openshift3/ose-metrics-hawkular-openshift-agent                    Hawkular OpenShift Agent is a Hawkular feed ...   0    
redhat.io    registry.redhat.io/openshift3/ose-keepalived-ipfailover                               Optional Pod providing keepalived support fo...   0    
redhat.io    registry.redhat.io/container-native-virtualization/node-maintenance-operator          Red Hat Container Native Virtualization imag...   0    
redhat.io    registry.redhat.io/openshift3/ose-node                                                Provides a containerized OpenShift Node with...   0    
redhat.io    registry.redhat.io/amqstreams-1/amqstreams10-kafkaconnect-openshift                   AMQ Streams image for running an Apache Kafk...   0    
redhat.io    registry.redhat.io/openshift4/ose-cluster-machine-approver                            'Validates and approves CSRs for nodes attem...   0    
redhat.io    registry.redhat.io/container-native-virtiualization/node-maintenance-rhel8-operator   Red Hat Container Native Virtualization imag...   0    
redhat.io    registry.redhat.io/openshift4/ose-ptp                                                 Linuxptp daemonset to apply ptp configuratio...   0    
redhat.io    registry.redhat.io/container-native-virtualization/kubevirt-cpu-node-labeller         Red Hat Container Native Virtualization imag...   0    
docker.io    docker.io/library/node                                                                Node.js is a JavaScript-based platform for s...   9152    [OK]
docker.io    docker.io/nodered/node-red-docker                                                     Deprecated - older Node-RED Docker images.        351                [OK]
docker.io    docker.io/bitnami/node                                                                Bitnami Node.js Docker Image                      45                 [OK]
docker.io    docker.io/appsvc/node                                                                 Azure App Service Node.js dockerfiles             14                 [OK]
docker.io    docker.io/circleci/node                                                               Node.js is a JavaScript-based platform for s...   110  
docker.io    docker.io/prom/node-exporter                                                                                                            193                [OK]
docker.io    docker.io/calico/node                                                                 Calico's per-host DaemonSet container image....   19                 [OK]
docker.io    docker.io/library/mongo-express                                                       Web-based MongoDB admin interface, written w...   754     [OK]
docker.io    docker.io/iron/node                                                                   Tiny Node image                                   29   
docker.io    docker.io/bitnami/node-exporter                                                       Bitnami Node Exporter Docker Image                2                  [OK]
docker.io    docker.io/kkarczmarczyk/node-yarn                                                     Node docker image with yarn package manager ...   48                 [OK]
docker.io    docker.io/nodered/node-red                                                            Low-code programming for event-driven applic...   175  
docker.io    docker.io/nodecg/nodecg                                                               Create broadcast graphics using Node.js and ...   1                  [OK]
docker.io    docker.io/selenium/node-chrome                                                                                                          213                [OK]
docker.io    docker.io/appsvctest/node                                                             node build                                        0                  [OK]
docker.io    docker.io/library/iojs                                                                io.js is an npm compatible platform original...   135     [OK]
docker.io    docker.io/camptocamp/node-collectd                                                    rancher node monitoring agent                     0                  [OK]
docker.io    docker.io/ppc64le/node                                                                Node.js is a JavaScript-based platform for s...   2    
docker.io    docker.io/testim/node-chrome                                                          Selenium Chrome Node + Testim Extension           0                  [OK]
docker.io    docker.io/digitallyseamless/nodejs-bower-grunt                                         Node.js w/ Bower & Grunt Dockerfile for tru...   48                 [OK]
docker.io    docker.io/cusspvz/node                                                                ? Super small Node.js container (~15MB) b...      8                  [OK]
docker.io    docker.io/ogazitt/node-env                                                            node app that shows environment variables         2    
docker.io    docker.io/basi/node-exporter                                                          Node exporter image that allows to expose th...   8                  [OK]
docker.io    docker.io/selenium/node-firefox                                                                                                         136                [OK]
docker.io    docker.io/tarampampam/node                                                            Docker image, based on node, with some addit...   2                  [OK]

Mit --filter = is-offiziell können Sie nur Bilder filtern, deren Distributor offiziell ist.

$ podman search node --filter=is-official
INDEX       NAME                              DESCRIPTION                                       STARS   OFFICIAL   AUTOMATED
docker.io   docker.io/library/node            Node.js is a JavaScript-based platform for s...   9152    [OK]
docker.io   docker.io/library/mongo-express   Web-based MongoDB admin interface, written w...   757     [OK]
docker.io   docker.io/library/iojs            io.js is an npm compatible platform original...   135     [OK]

Und wie bei Docker können Sie das Bild lokal mit "podman pull " bringen.

$ podman pull docker.io/library/node
Trying to pull docker.io/library/node...
Getting image source signatures
Copying blob de30e8b35015 done
Copying blob 419e7ae5bb1e done
Copying blob 7ec8a0667334 done
Copying blob 848839e0cd3b done
~~~~~ weggelassen ~~~~~~~~
$ podman images
REPOSITORY                            TAG      IMAGE ID       CREATED       SIZE
docker.io/library/node                latest   784e696f5060   2 weeks ago   972 MB

Das Podman-Container-Bild wird auf der offiziellen Website von Red Hat gespeichert. https://catalog.redhat.com/software/containers/explore)

Container starten

Wie Docker kann Podman einen Container mit "Podman Run" starten.

$ podman run -it --rm node bash
root@cc0bf2c6cc65:/# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Image erstellen

Sie können das Image mit dem Befehl buildah erstellen, und Sie können die Docker-Datei auch mit dem Befehl buildah bud erstellen. (Es gibt ein offizielles Tutorial. Bitte beziehen Sie sich darauf.) Übrigens können Sie auch die Liste der von podman gezogenen Bilder mit "buildah images" anzeigen.

$ podman images
REPOSITORY                                    TAG      IMAGE ID       CREATED          SIZE
localhost/johndoe/webserver                   latest   6d36abc8f72f   24 minutes ago   245 MB
registry.access.redhat.com/ubi8/ubi           latest   a1f8c9699786   5 weeks ago      211 MB
registry.access.redhat.com/ubi8/ubi-minimal   latest   86c870596572   5 weeks ago      146 MB

$ buildah images
REPOSITORY                                    TAG      IMAGE ID       CREATED          SIZE
localhost/johndoe/webserver                   latest   6d36abc8f72f   24 minutes ago   245 MB
registry.access.redhat.com/ubi8/ubi           latest   a1f8c9699786   5 weeks ago      211 MB
registry.access.redhat.com/ubi8/ubi-minimal   latest   86c870596572   5 weeks ago      146 MB

Erstellen Sie die Docker-Datei mit der folgenden Konfiguration mit dem Befehl buildah.

# ls
Dockerfile  myecho
# cat Dockerfile
FROM registry.access.redhat.com/ubi8/ubi:latest
ADD myecho /usr/local/bin
ENTRYPOINT "/usr/local/bin/myecho"
# cat myecho
echo "This container works!"
# chmod 755 myecho
# ./myecho
This container works!

Führen Sie nach dem Erstellen der Docker-Datei den Befehl buildah bud -t fedora-httpd . aus. Das Bild wird gemäß den Anweisungen in der Datei erstellt. Versuchen Sie nach Abschluss des Builds, den Container auszuführen.

$ buildah  images
REPOSITORY                            TAG      IMAGE ID       CREATED          SIZE
localhost/myecho-container            latest   5098f73df28e   50 seconds ago   211 MB
$ podman run localhost/myecho-container
This container works!

Abgesehen davon scheint es, dass Sie im Buildah-Tutorial den Container mit "Buildah Run" starten können, aber es ist fehlgeschlagen.

$ buildah run localhost/myecho-container
command must be specified
ERRO exit status 1                 

Container, Bild löschen

Wie bei Docker können Sie Container und Bilder mit der Option rm löschen.

$ podman ps -a
CONTAINER ID  IMAGE                                       COMMAND        CREATED        STATUS                         PORTS                 NAMES
06a79ab009f3  registry.access.redhat.com/ubi8/ubi:latest  /bin/bash      3 minutes ago  Exited (1) About a minute ago                        mystifying_jepsen
e8a1c6fbc91f  localhost/johndoe/webserver:latest          -D FOREGROUND  29 hours ago   Exited (135) 28 hours ago      0.0.0.0:8080->80/tcp  agitated_morse
$ podman rm e8a1c6fbc91f
e8a1c6fbc91f9252f13a34e6a2275078cdadef196e135bb32330784b8d012ad3
$ podman ps -a
CONTAINER ID  IMAGE                                       COMMAND        CREATED        STATUS                    PORTS                 NAMES
06a79ab009f3  registry.access.redhat.com/ubi8/ubi:latest  /bin/bash      4 minutes ago  Exited (1) 3 minutes ago                        mystifying_jepsen

Bilder können auch mit der Option "rmi" gelöscht werden.

$ podman images
REPOSITORY                                    TAG      IMAGE ID       CREATED        SIZE
localhost/johndoe/webserver                   latest   6d36abc8f72f   29 hours ago   245 MB
registry.access.redhat.com/ubi8/ubi           latest   a1f8c9699786   5 weeks ago    211 MB
registry.access.redhat.com/ubi8/ubi-minimal   latest   86c870596572   5 weeks ago    146 MB
docker.io/library/fedora                      latest   a368cbcfa678   7 weeks ago    189 MB

$ podman rmi docker.io/library/fedora
Untagged: docker.io/library/fedora:latest
Deleted: a368cbcfa6789bc347345f6d19132afe138b62ff5373d2aa5f37120277c90b54
$ podman rmi 86c870596572
Untagged: registry.access.redhat.com/ubi8/ubi-minimal:latest
Deleted: 86c870596572a5b4fe016f4fb7ae9d181e88df6ac91d2cb15250c5e053cfad15

$ podman images
REPOSITORY                            TAG      IMAGE ID       CREATED        SIZE
localhost/johndoe/webserver           latest   6d36abc8f72f   29 hours ago   245 MB
registry.access.redhat.com/ubi8/ubi   latest   a1f8c9699786   5 weeks ago    211 MB

Erstellen einer Kube Pod Yaml-Datei

Eine weitere Funktion von Podman ist, dass Sie "podman generate" verwenden können, um Kubernetes-Pods-Dateien zu erstellen. Führen Sie den Containerprozess von mariadb aus, um Kubernetes yaml mit dem Befehl "podman generate" auszugeben, und legen Sie ihn dann in einer Datei ab.

$ podman run -d -e MYSQL_USER=user -e MYSQL_PASSWORD=pass \
>      -e MYSQL_DATABASE=db -p 3306:3306 --name mymariadb rhscl/mariadb-102-rhel7
Trying to pull registry.access.redhat.com/rhscl/mariadb-102-rhel7...
Getting image source signatures
Copying blob 9e7a6dc796f0 done
Copying blob e7021e0589e9 done
Copying blob fc5b206e9329 [======================================] 72.7MiB / 72.7MiB
Copying blob 98b39311ee6a done
Copying config 5ca39d258f done
Writing manifest to image destination
Storing signatures
8e994c65e7a24febfa57c6cc79c44c7fce37c8593a087d9efb5c45b994169b48

$ podman ps -a
CONTAINER ID  IMAGE                                                      COMMAND     CREATED         STATUS             PORTS                   NAMES
8e994c65e7a2  registry.access.redhat.com/rhscl/mariadb-102-rhel7:latest  run-mysqld  41 seconds ago  Up 40 seconds ago  0.0.0.0:3306->3306/tcp  mymariadb

$ podman generate kube mymariadb > mymariadbkube.yaml
# Generation of Kubernetes YAML is still under development!
#
# Save the output of this file and use kubectl create -f to import
# it into Kubernetes.
#
# Created with podman-1.9.3
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: "2020-08-29T05:37:11Z"
  labels:
    app: mymariadb
  name: mymariadb
spec:
  containers:
  - command:
    - run-mysqld
    env:
    - name: PATH
      value: /opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    - name: TERM
      value: xterm
    - name: HOSTNAME
    - name: container
      value: oci
    - name: STI_SCRIPTS_URL
      value: image:///usr/libexec/s2i
    - name: MYSQL_PASSWORD
      value: pass
    - name: ENABLED_COLLECTIONS
      value: rh-mariadb102
    - name: PROMPT_COMMAND
      value: . /usr/share/container-scripts/mysql/scl_enable
    - name: HOME
      value: /var/lib/mysql
    - name: ENV
      value: /usr/share/container-scripts/mysql/scl_enable
    - name: PLATFORM
      value: el7
    - name: STI_SCRIPTS_PATH
      value: /usr/libexec/s2i
    - name: MYSQL_USER
      value: user
    - name: MYSQL_DATABASE
      value: db
    - name: DESCRIPTION
      value: MariaDB is a multi-user, multi-threaded SQL database server. The container
        image provides a containerized packaging of the MariaDB mysqld daemon and
        client application. The mysqld server daemon accepts connections from clients
        and provides access to content from MariaDB databases on behalf of the clients.
    - name: SUMMARY
      value: MariaDB 10.2 SQL database server
    - name: APP_ROOT
      value: /opt/app-root
    - name: MYSQL_PREFIX
      value: /opt/rh/rh-mariadb102/root/usr
    - name: APP_DATA
      value: /opt/app-root/src
    - name: BASH_ENV
      value: /usr/share/container-scripts/mysql/scl_enable
    - name: CONTAINER_SCRIPTS_PATH
      value: /usr/share/container-scripts/mysql
    - name: MYSQL_VERSION
      value: "10.2"
    image: registry.access.redhat.com/rhscl/mariadb-102-rhel7:latest
    name: mymariadb
    ports:
    - containerPort: 3306
      hostPort: 3306
      protocol: TCP
    resources: {}
    securityContext:
      allowPrivilegeEscalation: true
      capabilities: {}
      privileged: false
      readOnlyRootFilesystem: false
      runAsGroup: 27
      runAsUser: 27
      seLinuxOptions: {}
    workingDir: /opt/app-root/src
status: {}

Danach können Sie mit dem Befehl kubectl Pods für diese yaml-Datei erstellen. kubectl create -f mymariadbkube.yaml

Zusammenfassung

Ich erklärte die Funktionsweise verschiedener Werkzeuge. Diese beiden Befehle sind Tools, die in Ansible-bender funktionieren, die im nächsten Artikel vorgestellt werden. Mit Ansible können Sie ein Container-Image erstellen. Sie werden es schaffen. Ich habe noch nicht viel über Podman und Buildah gehört, aber ich denke, dass es als Container-Management-Tool, das Docker in Zukunft ersetzen wird, Aufmerksamkeit erregen wird. Daher möchte ich mein Verständnis vertiefen und es fest berühren.

Recommended Posts

Werden Sie Docker ersetzen? Container-Management-Tools der nächsten Generation Podman und Buildah
Befehlsmechanismus und Verwaltungstools
Über Docker, gefälschten Server und Container