Skip to content
Natuurondernemer
    Dezember 11, 2020 by admin

    Erstellen eines Basis-Images

    Erstellen eines Basis-Images
    Dezember 11, 2020 by admin

    Geschätzte Lesezeit: 3 Minuten

    Die meisten Dockerdateien starten von einem übergeordneten Image. Wenn Sie die vollständige Kontrolle über den Inhalt Ihres Images benötigen, müssen Sie stattdessen ein Basis-Image erstellen.

    • Ein Eltern-Image ist das Image, auf dem Ihr Image basiert. Es bezieht sich auf den Inhalt der Direktive FROM in derDockerfile. Jede nachfolgende Deklaration im Dockerfile modifiziert dieses Eltern-Image. Die meisten Dockerfiles beginnen mit einem Parent-Image und nicht mit einem Base-Image.

    • Ein Base-Image hat die Direktive FROM scratch in seiner Dockerfile.

    In diesem Thema werden Ihnen verschiedene Möglichkeiten gezeigt, ein Base-Image zu erstellen. Der spezifische Prozess hängt stark von der Linux-Distribution ab, die Sie paketieren möchten. Im Folgenden finden Sie einige Beispiele, und Sie sind eingeladen, Pull-Requests einzureichen, um neue Beispiele beizusteuern.

    Erstellen Sie ein vollständiges Image mit tar

    Im Allgemeinen sollten Sie mit einem funktionierenden Rechner beginnen, auf dem die Distribution läuft, die Sie als Basis-Image paketieren möchten, obwohl das für einige Tools wie DebiansDebootstrap, das Sie auch zum Erstellen von Ubuntu-Images verwenden können, nicht erforderlich ist.

    Ein Ubuntu-Parent-Image kann ganz einfach so erstellt werden:

    $ sudo debootstrap xenial xenial > /dev/null$ sudo tar -C xenial -c . | docker import - xeniala29c15f1bf7a$ docker run xenial cat /etc/lsb-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=16.04DISTRIB_CODENAME=xenialDISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"

    Es gibt weitere Beispielskripte zum Erstellen von Parent-Images im DockerGitHub-Repository.

    Erstellen eines einfachen Parent-Images mit Scratch

    Sie können das reservierte, minimale Image von Docker, scratch, als Ausgangspunkt für den Bau von Containern verwenden. Die Verwendung des scratch „image“ signalisiert dem Build-Prozess, dass der nächste Befehl im Dockerfile die erste Dateisystemebene in Ihrem Image sein soll.

    Während scratch im Repository von Docker auf dem Hub erscheint, können Sie es nicht abrufen, ausführen oder ein Image mit dem Namen scratch kennzeichnen. Stattdessen können Sie in Ihrem Dockerfile darauf verweisen. Um zum Beispiel einen minimalen Container mitscratch zu erstellen:

    FROM scratchADD hello /CMD 

    Angenommen, Sie haben das ausführbare Beispiel „hello“ anhand der Anweisungen aufhttps://github.com/docker-library/hello-world/,und Sie haben es mit dem -static-Flag kompiliert, können Sie dieses Dockerimage mit diesem docker build-Befehl bauen:

    docker build --tag hello .

    Vergessen Sie nicht das . Zeichen am Ende, das den Build-Kontext auf das aktuelle Verzeichnis setzt.

    Hinweis: Da Docker Desktop für Mac und Docker Desktop für Windows eine Linux-VM verwenden, benötigen Sie eine Linux-Binärdatei und nicht eine Mac- oder Windows-Binärdatei.Sie können einen Docker-Container verwenden, um es zu erstellen:

    $ docker run --rm -it -v $PWD:/build ubuntu:16.04container# apt-get update && apt-get install build-essentialcontainer# cd /buildcontainer# gcc -o hello -static -nostartfiles hello.c

    Um Ihr neues Image auszuführen, verwenden Sie den docker run Befehl:

    docker run --rm hello

    Dieses Beispiel erzeugt das in den Tutorials verwendete Hallo-Welt-Bild.Wenn Sie es ausprobieren möchten, können Sie das Bild-Repos klonen.

    Weitere Ressourcen

    Es gibt viele Ressourcen, die Ihnen beim Schreiben Ihrer Dockerfile helfen.

    Previous articleSind Kartoffelkäfer gefährlichNext article Warum 'Bharat', 'Indien' und 'Hindustan' unterschiedliche Emotionen hervorrufen

    Schreibe einen Kommentar Antworten abbrechen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

    Neueste Beiträge

    • Sich selbst (und andere…) in Jahrbüchern online finden
    • Wie man einen Bitcoin-ASIC-Miner einrichtet
    • Chris Martin feiert Geburtstag in Disneyland mit Dakota Johnson
    • Was ist ein Superfund-Standort?
    • Angelköder-Blutwürmer haben Bienenstiche
    • Echolalie: Die Fakten jenseits von „Papageiensprache“, Skripting und Echoing
    • Herr der Fliegen Zitate
    • A Beginner’s Guide to Pegging
    • 42 Healthy Crockpot Soup Recipes
    • 3 überraschende Risiken einer schlechten Körperhaltung

    Archive

    • April 2021
    • März 2021
    • Februar 2021
    • Januar 2021
    • Dezember 2020
    • November 2020
    • Oktober 2020
    • September 2020
    • August 2020
    • Juli 2020
    • Juni 2020
    • Mai 2020
    • April 2020
    • DeutschDeutsch
    • NederlandsNederlands
    • EspañolEspañol
    • FrançaisFrançais
    • PortuguêsPortuguês
    • ItalianoItaliano
    • PolskiPolski

    Meta

    • Anmelden
    • Feed der Einträge
    • Kommentare-Feed
    • WordPress.org
    Posterity WordPress Theme