Es gibt mehrere Möglichkeiten, ein Docker-Image zu erstellen
Es gibt zwei Möglichkeiten, ein Docker-Image zu erstellen: 1. Verwenden Sie den Befehl „Docker Commit“, um das Image basierend auf dem vorhandenen Container manuell zu erstellen. 2. Verwenden Sie Dockerfile, um das Image automatisch zu erstellen indem Sie die Anweisungen in der Dockerfile-Builddatei lesen.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Docker-1.13.1-Version, Dell G3-Computer.
Manchmal kann das aus dem Docker-Image-Warehouse heruntergeladene Image die Anforderungen nicht erfüllen.
Einführung in die Image-Konstruktion
Unter welchen Umständen müssen wir das Image selbst erstellen?
(1) Wenn wir kein vorhandenes Image finden können, beispielsweise eine von uns selbst entwickelte Anwendung
(2) Wir müssen dem Image bestimmte Funktionen hinzufügen
Es gibt zwei Möglichkeiten für Docker, ein Image zu erstellen: docker commit-Befehl und Dockerfile
Build-Dateidocker commit
命令与Dockerfile
构建文件
docker commit构建镜像
基于已有容器构建镜像主要是通过docker commit
Docker-Commit
verwendet Befehl zum Erstellen eines neuen Images. - Es gibt drei Hauptschritte zum Erstellen von Dockercommit:
- Führen Sie den Container aus.
- Ändern Sie den Container.
Speichern Sie den Container als neues Image.
Installieren Sie beispielsweise den VIM-Editor im Centos-Image und speichern Sie ihn als Neues Image (1) Container ausführen[root@ken1 docker]# docker run -it centos Unable to find image 'centos:latest' locally latest: Pulling from library/centos a02a4930cb5d: Pull complete Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426 Status: Downloaded newer image for centos:latest
[root@69f501e858a6 /]# vim bash: vim: command not found
[root@69f501e858a6 /]# yum install vim -y
[root@ken1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 69f501e858a6 centos "/bin/bash" 2 minutes ago Up 2 minutes quizzical_torvalds
Verwenden Sie Commit, um es zu speichern. Das neue Image
[root@ken1 ~]# docker commit 69f501e858a6 centos-vim sha256:42083b89a179368bc29a8f40d14f8824990183c8e4b28fd84411d440c26342e5
69f501e858a6 ist die ID des laufenden Containers. Sie können auch den Namen unten verwenden.
centos-vim ist der Name des neuen Images.Überprüfen Sie, ob ein Centos-VIM-Image vorhanden ist.
[root@ken1 ~]# docker run -it centos-vim [root@61d090898bad /]# vim [root@61d090898bad /]# vim test
- Dies ist eine manuelle Methode zum Erstellen von Bildern, der Container ist fehleranfällig und ineffizient schwach in der Wiederholbarkeit
- Noch wichtiger. Der Benutzer weiß nicht, wie das Bild erstellt wird. Befindet sich darin ein Schadprogramm?
Dockerfile zum Erstellen des Images.
Dockerfile ist eine Datei, die aus einer Reihe von Anweisungen besteht. Das Docker-Programm generiert schließlich ein Image, indem es die Anweisungen liest Docker-Datei.
Das erste Dockerfike
Schritt 1: Neues Verzeichnis erstellen
[root@ken1 ~]# mkdir /test
Schritt 2: Dockerfile schreiben
Der Name heißt Dockerfile und das erste D muss groß geschrieben werden
[root@ken1 ~]# cat Dockerfile FROM centos RUN yum install vim -y
FROM Centos bedeutet die Verwendung von Centos als Basisbild
RUN bedeutet, den VIM-Editor auf Centos zu installieren
Schritt 3: Erstellen Sie das Image
[root@ken1 ~]# docker build -t centos-vim2 .
Geben Sie den Tag-Namen (Tag) des neuen Images nach -t an
Der letzte Punkt zeigt an, dass der Docker-Kontext das aktuelle Verzeichnis ist . Docker sucht standardmäßig im Build-Kontext nach der Docker-Datei. Schritt 4: Zeigen Sie den Build-Verlauf des Bildes an das Bild, das den Ausführungsprozess der Docker-Datei darstellt.
Dcokerfile allgemeine Anweisungen
1.FROMGeben Sie das Basisbild an
2. MAINTAINER
Legen Sie den Autor des Bildes fest. Es kann ein beliebiges Zeichen sein kopiert werden Die Dateien oder Verzeichnisse im dynamischen Build-Kontext können sich nur im selben Verzeichnis wie die Docker-Datei befinden 4.ADD
ähnelt COPY und kopiert Dateien aus dem Build-Kontext in das Image.
Der Unterschied besteht darin, dass, wenn src eine Archivdatei (tar, zip, tgz, xz) ist, die Datei automatisch an dest übertragen wird.
5.ENV
Setzen Sie Umgebungsvariablen, die von nachfolgenden Anweisungen verwendet werden können, z als:
ENV name ken RUN echo $name
6.EXPOSE
Der Prozess im angegebenen Container hört auf einen bestimmten Port, und Docker kann den Port freigeben
7.VOLUME
Deklarieren Sie eine Datei oder ein Verzeichnis als ein Volume
10.CMD
容器启动时运行指定的命令
dockerfile中可以多个CMD指令,但是只要最后一个生效。CMD可以被docker run之后的参数替换
11.ENTRYPOINT
设置容器启东市的命令
dockerfile中可以有多个ENTRYPOINT,但是只有最后一个生效。
CMD或者docker run之后的参数会被当做参数传递给ENTERYPOINT.
Dockerfile演示
下面演示一个比较全面的dockerfile
[root@ken1 test]# cat Dockerfile #my Dockerfile FROM busybox MAINTAINER ken WORKDIR /ken RUN touch test COPY ["ken1","."] ADD ["wordpress.tar.gz","."] ENV name "ken"
注意:Dockerfile支持以#开头的注释
构建镜像
[root@ken1 test]# docker build -t myimage . Sending build context to Docker daemon 4.281MB Step 1/7 : FROM busybox ---> 3a093384ac30 Step 2/7 : MAINTAINER ken ---> Running in 2a73a83507ce Removing intermediate container 2a73a83507ce ---> 8c3df9b3d823 Step 3/7 : WORKDIR /ken ---> Running in 31c6f9fe2195 Removing intermediate container 31c6f9fe2195 ---> a458cf986072 Step 4/7 : RUN touch test ---> Running in e1b08ebd363c Removing intermediate container e1b08ebd363c ---> 41601920009a Step 5/7 : COPY ["ken1","."] ---> 2ebfa0933fca Step 6/7 : ADD ["wordpress.tar.gz","."] ---> d0ad29d3aa34 Step 7/7 : ENV name "ken" ---> Running in fceae6e20e63 Removing intermediate container fceae6e20e63 ---> 7efe0600e48f Successfully built 7efe0600e48f Successfully tagged myimage:latest
查看镜像
运行该镜像
[root@ken1 test]# docker run -it myimage /ken # ls ken1 test wordpress /ken # echo $name ken
- 可以发现当前工作目录为/ken,且自动创建
- ken1是我们从docker context目录中复制过去的
- test是使用touch创建的
- wordpres压缩包已经被自动解压
- $name为变量值为ken
推荐学习:《docker视频教程》
Das obige ist der detaillierte Inhalt vonEs gibt mehrere Möglichkeiten, ein Docker-Image zu erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Vier Möglichkeiten zum Beenden von Docker Container: Verwenden Sie Strg D im Befehl Container Terminal ENGEBOT IM Container Terminal verwenden Sie Docker Stop & lt; container_name & gt; Befehl verwenden Sie Docker Kill & lt; container_name & gt; Befehl im Host -Terminal (Force Exit)

Methoden zum Kopieren von Dateien in externen Hosts in Docker: Verwenden Sie den Befehl Docker CP: Docker CP [Optionen] & lt; Containerpfad & gt; & lt; Host -Pfad & gt;. Verwenden von Datenvolumina: Erstellen Sie ein Verzeichnis auf dem Host und verwenden Sie den Parameter -V, um das Verzeichnis in den Container zu montieren, um den Container zu erstellen, um eine bidirektionale Dateisynchronisation zu erreichen.

Die Schritte zur Aktualisierung eines Docker -Images sind wie folgt: Ziehen Sie das neueste Bild -Tag. Neues Bild Löschen Sie das alte Bild für ein bestimmtes Tag (optional) den Container neu (falls erforderlich) neu starten Sie neu (falls erforderlich).

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So starten Sie den Docker -Container neu: Holen Sie sich die Container -ID (Docker PS); Stop den Container (Docker Stop & lt; Container_id & gt;); Starten Sie den Container (Docker start & lt; container_id & gt;); Stellen Sie sicher, dass der Neustart erfolgreich ist (Docker PS). Andere Methoden: Docker Compose (Docker-Compose Neustart) oder Docker-API (siehe Docker-Dokumentation).

Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen

Docker Process Viewing -Methode: 1. Docker Cli -Befehl: Docker PS; 2. SYSTEMD CLI -Befehl: SystemCTL Status Docker; 3.. Docker Compose CLI Command: Docker-Compose PS; 4. Process Explorer (Windows); 5. /proc -Verzeichnis (Linux).

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).
