Ich bin sehr Ausgangsposition in Docker. Ich versuche, Helloworld-Docker-Bild zu erstellen, das ein Basisbild erfordert. Ich arbeite im Intranet-Netzwerk. Also, wie bekomme ich das Basisbild ??. Ich bin mit Redhat Linux 7.Wie zum Herunterladen von Base Docker Bild zum Erstellen von Hallo Welt Docker Bild?
Antwort
Docker lädt das von Ihnen in Ihrer Dockerdatei angegebene Basisbild automatisch herunter. So könnte zum Beispiel ein wirklich einfaches "Hallo-Welt" -Bild sein;
Inhalt Ihres Dockerfile:
FROM alpine
CMD echo "hello-world"
ein Bild aus dem Dockerfile Gebäude, und es "Hallo" zu benennen:
docker build -t hello .
Sie werden sehen, Docker Ziehen des alpine
Bild, wenn es isn noch da und dann das Bild aufbauen;
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM alpine
---> 70c557e50ed6
Step 2 : CMD echo "hello world"
---> Running in 94fcb9b89aaa
---> 6462a272b1d6
Removing intermediate container 94fcb9b89aaa
Successfully built 6462a272b1d6
Anschließend können Sie einen Container aus dem Bild laufen (das Bild wird nur laufen und fahren direkt nach seiner done)
$ docker run hello
hello world
können Sie verwenden jede Bild als „Basis“ (FROM
) Bild für Ihre eigenen Bilder, so kann jedes Bild, das Sie auf Docker Hub finden, als Basis verwendet werden.
Im Allgemeinen wird jedoch empfohlen, die "offiziellen" Bilder als Grundlage für Ihre eigenen Bilder zu verwenden. Es gibt verschiedene "Distributionen" wie Ubuntu, Debian, Alpine (wenn Sie ein leichtes Bild haben wollen), CentOS usw.Das Basisbild muss nicht mit der Distribution Ihres Hosts übereinstimmen (Sie können also "ubuntu" für Ihre Bilder verwenden, obwohl Red Hat auf Ihrem Host läuft)
Sie können die offiziellen Bilder hier finden; https://hub.docker.com/explore/
Für eine erweiterte "Hallo Welt" Bild finden Sie in der Dokumentation hier; https://docs.docker.com/engine/userguide/containers/dockerizing/
Und bewährte Verfahren zum Schreiben von Dockerfiles; https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
Erstellen Sie eine vollständige Bild tar
In der Regel werden Sie wollen mit einer Arbeitsmaschine starten, die die Verteilung läuft Sie möchten als verpacken Basis-Image, obwohl dies für einige Tools wie Debians Debootstrap
nicht erforderlich ist, die Sie auch zum Erstellen von Ubuntu-Images verwenden können.
Es kann so einfach sein, da dies ein Ubuntu Basis-Image zu erstellen:
$ sudo debootstrap raring raring > /dev/null
$ sudo tar -C raring -c . | docker import - raring
a29c15f1bf7a
$ docker run raring cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=13.04
DISTRIB_CODENAME=raring
DISTRIB_DESCRIPTION="Ubuntu 13.04"
Es gibt mehr Beispiel-Skripte für die Erstellung von Grundbildern im Docker GitHub Repo:
Im Allgemeinen würde ich nicht empfehlen, zu versuchen, Ihre eigenen Basisbilder zu bauen; Die offiziellen Basisbilder sind gut gepflegt und werden auf Schwachstellen überprüft. Es ist leicht zu vermasseln Erstellen Sie Ihre eigenen Basis-Images, und erfordert Zeit und Mühe, um sie auf dem neuesten Stand zu halten – thaJeztah
Danke thaJeztah. Aber ich arbeite im Intranet, wo ich kein Basis-Image herunterladen kann. Also, ist es eine Möglichkeit, Bilddatei herunterzuladen und in meinen lokalen Repo von Docker einzufügen. –
Wenn Sie in einer Umgebung arbeiten, in der keine Internetverbindung möglich ist, können Sie das Basisimage auf einem System mit * Internetverbindung * ziehen und das Basisimage über https://docs.docker.com exportieren/engine/reference/commandline/save/und lade sie mit 'docker load'. Dies gibt die volle Kontrolle darüber, welche Bilder verfügbar sind und verwendet werden dürfen. Alternativ können Sie ein privates Repository einrichten, mit dem sich Entwickler verbinden können, um Bilder zu ziehen. – thaJeztah
Beachten Sie, dass ein lokales Repository als Spiegel für den Docker-Hub fungieren kann. Ich denke, es ist möglich, dass das funktioniert, wenn es keine Internetverbindung gibt. Dies würde Ihnen die Möglichkeit geben, offizielle Bilder zu verwenden, aber Entwickler nicht die Möglichkeit geben, zusätzliche Bilder zu ziehen. – thaJeztah