

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwendung AL2023 in Behältern
<a name="container"></a>

**Anmerkung**  
 Weitere Informationen zur Verwendung AL2023 zum Hosten von containerisierten Workloads auf Amazon ECS finden Sie unter. [AL2023 für Amazon ECS-Container-Hosts](ecs.md) 

 Je nach Anwendungsfall gibt es mehrere Möglichkeiten, die innerhalb von Containern verwendet werden AL2023 können. Das [AL2023 Basis-Container-Image](base-container.md) ist einem Amazon Linux 2-Container-Image und dem AL2023 Minimal-AMI am ähnlichsten. 

 Für fortgeschrittene Benutzer bieten wir ein minimales Container-Image an, das in Version AL2023 2.2 eingeführt wurde, zusammen mit einer Dokumentation, in der beschrieben wird, wie [Bare-Bone-Container erstellt werden.](barebones-containers.md) 

 AL2023 kann auch verwendet werden, um containerisierte Workloads zu hosten, entweder von AL2023 basierten Container-Images oder von Containern, die auf anderen Linux-Distributionen basieren. Hierzu können Sie [AL2023 für Amazon ECS-Container-Hosts](ecs.md) verwenden oder die enthaltenen Container-Runtime-Pakete direkt verwenden. Die `nerdctl` Pakete `docker``containerd`, und können auf ihnen installiert und verwendet werden. AL2023 

**Topics**
+ [Verwenden Sie das AL2023 Basis-Container-Image](base-container.md)
+ [AL2023 Minimales Container-Image](minimal-container.md)
+ [Erstellung einfacher Container-Images AL2023](barebones-containers.md)
+ [Vergleich der auf Amazon-Linux-2023-Images installierten Pakete](al2023-container-image-types.md)
+ [Vergleich der auf Amazon-Linux-2023–Minimal-AMI und Container-Images installierten Pakete](al2023-container-ami.md)

# Verwenden Sie das AL2023 Basis-Container-Image
<a name="base-container"></a>

Das AL2023 Container-Image besteht aus denselben Softwarekomponenten, die im AL2023 AMI enthalten sind. Es kann in jeder Umgebung als Basis-Image für Docker-Workloads verwendet werden. Wenn Sie das Amazon-Linux-AMI für Anwendungen in [Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/) (Amazon EC2) verwenden, können Sie Ihre Anwendungen mit dem Amazon-Linux-Container-Image containerisieren.

Verwenden Sie das Amazon Linux-Container-Image in Ihrer lokalen Entwicklungsumgebung und übertragen Sie dann Ihre AWS Anwendung auf [Amazon Elastic Container Service](https://docs.aws.amazon.com/AmazonECS/latest/userguide/) (Amazon ECS). Weitere Informationen finden Sie unter [Verwenden von Amazon-ECR-Images mit Amazon ECS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html) im *Amazon-Elastic-Container-Registry-Benutzerhandbuch*.

Das Amazon-Linux-Container-Image ist unter Amazon ECR Public verfügbar. Sie können Ihr Feedback an Ihren zuständigen AWS Vertreter senden oder indem Sie ein Problem im [Amazon-Linux-2023-Repo](https://github.com/amazonlinux/amazon-linux-2023/issues) unter einreichen. AL2023 GitHub

****So rufen Sie das Amazon-Linux-Container-Image von Amazon ECR Public ab****

1. Authentifizieren Sie Ihren Docker-Client beim Amazon-Linux-Public-Registry. Authentifizierungs-Token sind 12 Stunden lang gültig. Weitere Informationen finden Sie unter [Registry-Authentifizierung](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html) im *Benutzerhandbuch zum Amazon Elastic Container Registry*.
**Anmerkung**  
Der **get-login-password** Befehl wird mit der neuesten Version von Version 2 unterstützt. AWS CLI Weitere Informationen finden Sie unter [Installieren der AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) im *AWS Command Line Interface -Benutzerhandbuch*.

   ```
   $ aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
   ```

   Die Ausgabe sieht wie folgt aus.

   ```
   Login succeeded
   ```

1. Rufen Sie das Amazon-Linux-Container-Image mit dem **docker pull**-Befehl ab. Um das Amazon Linux-Container-Image in der Amazon ECR Public Gallery anzuzeigen, siehe [Amazon ECR Public Gallery – amazonlinux](https://gallery.ecr.aws/amazonlinux/amazonlinux).
**Anmerkung**  
Wenn Sie das AL2023 Docker Container-Image abrufen, können Sie die Tags in einem der folgenden Formate verwenden:  
Verwenden Sie das `:2023` Tag, um die neueste Version des AL2023 Container-Images zu erhalten.
Um eine bestimmte Version von zu erhalten AL2023, können Sie das folgende Format verwenden:  
`:2023.[0-7 release quarter].[release date].[build number]`
In den folgenden Beispielen wird das Tag verwendet `:2023` und das neueste verfügbare Container-Image von abgerufen AL2023.

   ```
   $ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023
   ```

1. (Optional) Führen Sie den Container lokal aus.

   ```
   $ docker run -it --security-opt seccomp=unconfined public.ecr.aws/amazonlinux/amazonlinux:2023 /bin/bash
   ```

**Um das AL2023 Container-Image von Docker Hub abzurufen**

1. Rufen Sie das AL2023 Container-Image mit dem **docker pull** Befehl ab.

   ```
   $ docker pull amazonlinux:2023
   ```

1. (Optional) Führen Sie den Container lokal aus.

   ```
   $ docker run -it amazonlinux:2023 /bin/bash
   ```
**Anmerkung**  
Das Container-Image von AL2023 verwendet nur den `dnf` Paketmanager zur Installation von Softwarepaketen. Das bedeutet, dass es keinen `amazon-linux-extras`- oder gleichwertigen Befehl gibt, der für zusätzliche Software verwendet werden kann.

# AL2023 Minimales Container-Image
<a name="minimal-container"></a>

**Anmerkung**  
 Die AL2023 Standard-Container-Images sind für die meisten Anwendungsfälle geeignet, und die Anpassung an das minimale Container-Image ist wahrscheinlich aufwändiger als die Anpassung an das AL2023 Basis-Container-Image. 

 Das in AL2023 2.2 eingeführte AL2023 Minimal-Container-Image unterscheidet sich vom Basis-Container-Image dadurch, dass es nur die Mindestmenge an Paketen enthält, die für die Installation anderer Pakete erforderlich sind. Das Minimal-Container-Image ist so konzipiert, dass es sich um eine minimale Anzahl von Paketen handelt, nicht um eine praktische Zusammenstellung von Paketen. 

 Das AL2023 Minimal-Container-Image besteht aus Softwarekomponenten, die bereits in verfügbar sind AL2023. Der wesentliche Unterschied beim Minimal-Container-Image besteht darin, den `dnf` Paketmanager `microdnf` zur Verfügung zu stellen, und nicht das Image mit vollem Python Funktionsumfang`dnf`. Dadurch kann das minimale Container-Image kleiner sein, mit dem Nachteil, dass nicht der gesamte Funktionsumfang des `dnf` Paketmanagers zur Verfügung steht, der im Container-Image AL2023 AMIs und im Basiscontainer-Image enthalten ist. 

 Das AL2023 minimale Container-Image bildet die Basis der `provided.al2023` AWS Lambda-Laufzeitumgebung. 

 Eine ausführliche Liste der Pakete, die im Minimal-Container-Image enthalten sind, finden Sie unter[Vergleich der auf Amazon-Linux-2023-Images installierten Pakete](al2023-container-image-types.md). 

## Größe des Minimal-Container-Image
<a name="container-minimal-size"></a>

 Da das AL2023 minimale Container-Image weniger Pakete enthält als das AL2023 Basis-Container-Image, ist es auch deutlich kleiner. In der folgenden Tabelle werden die Container-Image-Optionen aktueller und früherer Versionen von Amazon Linux verglichen. 

**Anmerkung**  
 Die Größe des Image wird unter [Amazon Linux in der Amazon ECR Public Gallery](https://gallery.ecr.aws/amazonlinux/amazonlinux) angezeigt. 


| Image | Version | Größe des Image | Hinweis | 
| --- | --- | --- | --- | 
| Amazon Linux (1AL1) | 2018.03.0.20230918,0 | 62,3 MB | Nur x86-64 | 
| Amazon Linux 2 | 2.0.20230926.0 | 64,2 MB | aarch64 ist 1,6 MB größer als x86-64 | 
| Base-Container-Image für Amazon Linux 2023 | 2023,2.20231002,0 | 52,4 MB |  | 
| Minimal-Container-Image für Amazon Linux 2023 | 2023.2.20231002.0-minimal | 35,2 MB |  | 

## Verwenden des Minimal Container-Images AL2023
<a name="using-container-minimal"></a>

 Das AL2023 Minimal-Container-Image ist auf verfügbar ECR und das `2023-minimal` Tag zeigt immer auf das neueste AL2023 basierte Minimal-Container-Image, obwohl das `minimal` Tag möglicherweise auf eine neuere Version von Amazon Linux aktualisiert wird als AL2023. 

 Sie können diese Tags `docker` anhand des folgenden Beispiels abrufen: 

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:minimal
```

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023-minimal
```

Das folgende Beispiel zeigt a`Dockerfile`, das das minimale Container-Image verwendet und GCC darüber installiert:

```
FROM public.ecr.aws/amazonlinux/amazonlinux:2023-minimal
RUN dnf install -y gcc && dnf clean all
```

# Erstellung einfacher Container-Images AL2023
<a name="barebones-containers"></a>

Das AL203-Container-Image besteht aus denselben Softwarekomponenten, die im AL2023-AMI enthalten sind. Es enthält eine Software, die es der Basis-Container-Ebene ermöglicht, sich ähnlich zu verhalten wie die Ausführung auf einer Amazon EC2 EC2-Instance, z. B. dem Paketmanager`dnf`. In diesem Abschnitt wird erklärt, wie Sie einen Container von Grund auf neu erstellen können, der nur die für eine Anwendung erforderlichen Mindestabhängigkeiten enthält.

**Anmerkung**  
Die AL2023 Standard-Container-Images sind für die meisten Anwendungsfälle geeignet. Mit den Standard-Container-Images ist es einfach, auf Ihrem eigenen Image aufzubauen. Ein einfaches Container-Image macht es schwieriger, auf Ihrem Image aufzubauen.

**So erstellen Sie einen Container mit minimalen Abhängigkeiten für eine Anwendung**

1. Stellen Sie Ihre Laufzeitabhängigkeiten fest. Diese sind von Ihrer Anwendung abhängig.

1. Konstruieren Sie ein `Dockerfile`/`Containerfile`, das `FROM scratch` aufbaut. Das folgende `Dockerfile`-Beispiel kann verwendet werden, um einen Container zu erstellen, der nur die `bash`-Shell und deren Abhängigkeiten enthält.

   ```
   FROM public.ecr.aws/amazonlinux/amazonlinux:2023 as build
   RUN mkdir /sysroot
   RUN dnf --releasever=$(rpm -q system-release --qf '%{VERSION}') \
     --installroot /sysroot \
     -y \
     --setopt=install_weak_deps=False \
     install bash
   
   FROM scratch
   COPY --from=build /sysroot /
   WORKDIR /
   ENTRYPOINT ["/bin/bash"]
   ```

   1. Dieses `Dockerfile` funktioniert wie folgt:

     1.  Starten eines AL2023 Containers mit dem Namen. `build` Dieser Container wird für das Bootstrapping des minimalen Containers verwendet. Dieser Container wird selbst nicht bereitgestellt, sondern generiert den Container, der bereitgestellt werden soll. 

     1.  Erstellen des `/sysroot`-Verzeichnisses. In diesem Verzeichnis installiert der `build`-Container die für den minimalen Container benötigten Abhängigkeiten. Im nächsten Schritt wird der `/sysroot`-Pfad so gepackt, dass er zum Stammverzeichnis unseres minimalen Images wird. 

         Wenn wir die `--installroot` Option auf diese `dnf` Weise verwenden, erstellen wir die anderen AL2023 Bilder. Dies ist ein Feature von `dnf`, mit dem Installationsprogramme und Tools zur Image-Erstellung arbeiten können. 

     1.  Aufruf von `dnf` um Pakete in `/sysroot` zu installieren. 

         Der `rpm -q system-release --qf '%{VERSION}'`-Befehl fragt (`-q`) das `system-release`-Paket ab, wobei das Abfrageformat (`--qf`) festgelegt wird, mit dem die Version des abgefragten Pakets ausgedruckt wird (die `%{VERSION}`-Variable ist die `rpm`-Variable für die `RPM`-Version). 

         Durch eine Festlegung des `--releasever`-Arguments von `dnf` auf die `system-release`-Version im `build`-Container, kann dieses `Dockerfile` verwendet werden, um den minimalen Container jedes Mal neu zu erstellen, wenn ein aktualisiertes Container-Basis-Image von Amazon Linux veröffentlicht wird. 

         Es ist möglich, das `--releasever` auf eine beliebige Amazon Linux 2023-Version einzustellen, z. B. 2023.10.20260325. Dies würde bedeuten, dass der `build` Container als neueste AL2023 Version ausgeführt wird, der Barebones-Container jedoch unabhängig von der aktuellen Version ab 2023.10.20260325 erstellt wird. AL2023 

         Die `--setopt=install_weak_deps=False`-Konfigurationsoption informiert `dnf`, dass nur *erforderliche* Abhängigkeiten installiert werden sollen und nicht solche, die empfohlen oder vorgeschlagen werden. 

     1. Kopieren des installierten Systems in das Stammverzeichnis eines leeren (`FROM scratch`-) Containers.

     1. `ENTRYPOINT` auf den gewünschten Binärwert setzen, hier `/bin/bash`.

1. Erstellen Sie ein leeres Verzeichnis und fügen Sie den Inhalt des Beispiels in Schritt 2 zu einer Datei mit dem Namen `Dockerfile` hinzu.

   ```
   $ mkdir al2023-barebones-bash-example
   	$ cd al2023-barebones-bash-example
   	$ cat > Dockerfile <<EOF
   FROM public.ecr.aws/amazonlinux/amazonlinux:2023 as build
   RUN mkdir /sysroot
   RUN dnf --releasever=$(rpm -q system-release --qf '%{VERSION}') \
     --installroot /sysroot \
     -y \
     --setopt=install_weak_deps=False \
     install bash && dnf --installroot /sysroot clean all
   
   FROM scratch
   COPY --from=build /sysroot /
   WORKDIR /
   ENTRYPOINT ["/bin/bash"]
   EOF
   ```

1. Erstellen Sie den Container, indem Sie den folgenden Befehl ausführen.

   ```
   $ docker build -t al2023-barebones-bash-example
   ```

1. Führen Sie den Container mit dem folgenden Befehl aus, um zu sehen, wie minimal ein Nur-`bash`-Container ist.

   ```
   $ docker run -it --rm al2023-barebones-bash-example
   bash-5.2# rpm
   bash: rpm: command not found
   bash-5.2# du -sh /usr/
   bash: du: command not found
   bash-5.2# ls
   bash: ls: command not found
   bash-5.2# echo /bin/*
   /bin/alias /bin/bash /bin/bashbug /bin/bashbug-64 /bin/bg /bin/catchsegv /bin/cd /bin/command /bin/fc /bin/fg /bin/gencat /bin/getconf /bin/getent /bin/getopts /bin/hash /bin/iconv /bin/jobs /bin/ld.so /bin/ldd /bin/locale /bin/localedef /bin/pldd /bin/read /bin/sh /bin/sotruss /bin/sprof /bin/type /bin/tzselect /bin/ulimit /bin/umask /bin/unalias /bin/wait /bin/zdump
   ```

Ein praktischeres Beispiel sehen Sie im folgenden Verfahren, in dem ein Container für eine C-Anwendung erstellt wird, die `Hello World!` anzeigt.

1. Erstellen Sie ein leeres Verzeichnis und fügen Sie den C-Quellcode und `Dockerfile` hinzu.

   ```
   $ mkdir al2023-barebones-c-hello-world-example
   $ cd al2023-barebones-c-hello-world-example
   $ cat > hello-world.c <<EOF
   #include <stdio.h>
   int main(void)
   {
     printf("Hello World!\n");
     return 0;
   }
   EOF
   
   $ cat > Dockerfile <<EOF
   FROM public.ecr.aws/amazonlinux/amazonlinux:2023 as build
   COPY hello-world.c /
   RUN dnf -y install gcc
   RUN gcc -o hello-world hello-world.c
   RUN mkdir /sysroot
   RUN mv hello-world /sysroot/
   RUN dnf --releasever=$(rpm -q system-release --qf '%{VERSION}') \
     --installroot /sysroot \
     -y \
     --setopt=install_weak_deps=False \
     install glibc && dnf --installroot /sysroot clean all
   
   FROM scratch
   COPY --from=build /sysroot /
   WORKDIR /
   ENTRYPOINT ["/hello-world"]
   EOF
   ```

1. Erstellen Sie den Container mithilfe des folgenden Befehls.

   ```
   $ docker build -t al2023-barebones-c-hello-world-example .
   ```

1. Führen Sie den Container mithilfe des folgenden Befehls aus.

   ```
   $ docker run -it --rm al2023-barebones-c-hello-world-example
   Hello World!
   ```

# Vergleich der auf Amazon-Linux-2023-Images installierten Pakete
<a name="al2023-container-image-types"></a>

Ein Vergleich des RPMs aktuellen Container-Images auf dem AL2023 Basis-Container-Image mit dem RPMs aktuellen auf dem AL2023 Minimal-Container-Image.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/linux/al2023/ug/al2023-container-image-types.html)

# Vergleich der auf Amazon-Linux-2023–Minimal-AMI und Container-Images installierten Pakete
<a name="al2023-container-ami"></a>

Ein Vergleich der RPMs Gegenwart auf dem AL2023 Minimial AMI mit der RPMs Gegenwart auf der AL2023 Basis und Minimal-Container-Images.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/linux/al2023/ug/al2023-container-ami.html)